Actions
Bug #22438
closedmon: leak in lttng dlopen / __tracepoints__init
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
In the 3 valgrind failures here: http://pulpito.ceph.com/yuriw-2017-12-12_20:47:55-rados-wip-yuri2-testing-2017-12-12-1750-distro-basic-smithi/
There are several leaks from _tracepoints_init in the monitor valgrind logs:
<error> <unique>0x17</unique> <tid>1</tid> <kind>Leak_StillReachable</kind> <xwhat> <text>3,533 bytes in 3 blocks are still reachable in loss record 24 of 26</text> <leakedbytes>3533</leakedbytes> <leakedblocks>3</leakedblocks> </xwhat> <stack> <frame> <ip>0x4C2B975</ip> <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj> <fn>calloc</fn> <dir>/builddir/build/BUILD/valgrind-3.12.0/coregrind/m_replacemalloc</dir> <file>vg_replace_malloc.c</file> <line>711</line> </frame> <frame> <ip>0x400B0BE</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_new_object</fn> </frame> <frame> <ip>0x40061EB</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_map_object_from_fd</fn> </frame> <frame> <ip>0x4008587</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_map_object</fn> </frame> <frame> <ip>0x400CB51</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>openaux</fn> </frame> <frame> <ip>0x400F313</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_catch_error</fn> </frame> <frame> <ip>0x400D251</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_map_object_deps</fn> </frame> <frame> <ip>0x40139FA</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>dl_open_worker</fn> </frame> <frame> <ip>0x400F313</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_catch_error</fn> </frame> <frame> <ip>0x401330A</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_open</fn> </frame> <frame> <ip>0xDA63FBA</ip> <obj>/usr/lib64/libdl-2.17.so</obj> <fn>dlopen_doit</fn> </frame> <frame> <ip>0x400F313</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_catch_error</fn> </frame> <frame> <ip>0xDA645BC</ip> <obj>/usr/lib64/libdl-2.17.so</obj> <fn>_dlerror_run</fn> </frame> <frame> <ip>0xDA64050</ip> <obj>/usr/lib64/libdl-2.17.so</obj> <fn>dlopen@@GLIBC_2.2.5</fn> </frame> <frame> <ip>0x503D7D7</ip> <obj>/usr/lib64/ceph/libceph-common.so.0</obj> <fn>__tracepoints__init</fn> <dir>/usr/include/lttng</dir> <file>tracepoint.h</file> <line>281</line> </frame> <frame> <ip>0x400F502</ip> <obj>/usr/lib64/ld-2.17.so</obj> <fn>_dl_init</fn> </frame> <frame> <ip>0x40011A9</ip> <obj>/usr/lib64/ld-2.17.so</obj> </frame> <frame> <ip>0x5</ip> </frame> <frame> <ip>0xFFF000C7E</ip> </frame> <frame> <ip>0xFFF000C87</ip> </frame> <frame> <ip>0xFFF000C8A</ip> </frame> <frame> <ip>0xFFF000C94</ip> </frame> <frame> <ip>0xFFF000C99</ip> </frame> <frame> <ip>0xFFF000C9C</ip> </frame> </stack> </error>
Updated by Josh Durgin over 6 years ago
- Related to Bug #19778: valgrind leak reported in __tracepoints__init, dlopen added
Updated by Kefu Chai over 6 years ago
- Related to Bug #18838: valgrind: Leak_StillReachable in libceph-common __tracepoints__init added
Updated by Kefu Chai over 6 years ago
now daemons are linked against ceph-common, and when ceph-common is dlopen'ed __tracepoints__init()
is called; when ceph-common is dlclose'ed, __tracepoints__destroy()
is called. but somehow, __tracepoints__destroy()
is not called when ceph-mon stops. this issue is identical to #19778.
i will revert the change to link daemons against ceph-common. linking against ceph-common can shrink the size of executables, we need to revisit this issue later.
Updated by Kefu Chai over 6 years ago
- Status changed from New to Fix Under Review
- Assignee set to Kefu Chai
Updated by Josh Durgin over 6 years ago
- Status changed from Fix Under Review to Resolved
Updated by Kefu Chai over 6 years ago
- Status changed from Resolved to Fix Under Review
Updated by Kefu Chai over 6 years ago
Updated by Patrick Donnelly over 6 years ago
- Status changed from Fix Under Review to Resolved
Actions