Project

General

Profile

Bug #22438

mon: leak in lttng dlopen / __tracepoints__init

Added by Josh Durgin over 1 year ago. Updated over 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
LTTNG
Target version:
-
Start date:
12/13/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:

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>

Related issues

Related to Ceph - Bug #19778: valgrind leak reported in __tracepoints__init, dlopen Resolved 04/25/2017
Related to fs - Bug #18838: valgrind: Leak_StillReachable in libceph-common __tracepoints__init Resolved 02/06/2017

History

#1 Updated by Josh Durgin over 1 year ago

  • Related to Bug #19778: valgrind leak reported in __tracepoints__init, dlopen added

#2 Updated by Kefu Chai over 1 year ago

  • Related to Bug #18838: valgrind: Leak_StillReachable in libceph-common __tracepoints__init added

#3 Updated by Kefu Chai over 1 year 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.

#4 Updated by Kefu Chai over 1 year ago

  • Status changed from New to Need Review
  • Assignee set to Kefu Chai

#5 Updated by Josh Durgin over 1 year ago

  • Status changed from Need Review to Resolved

#6 Updated by Kefu Chai over 1 year ago

  • Status changed from Resolved to Need Review

#8 Updated by Patrick Donnelly over 1 year ago

  • Status changed from Need Review to Resolved

Also available in: Atom PDF