<div dir="ltr">Hi,<div><br></div><div><div>I have seen that the RES mem from TOP increases over time for an application that</div><div>is being traced. When analyzed with valgrind, I see the following</div><div><br></div><div>==12429== 175,824 bytes in 594 blocks are possibly lost in loss record 30 of 30</div><div>==12429==    at 0x4C29810: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)</div><div>==12429==    by 0x54AF21E: calloc (in /usr/lib64/liblttng-ust-libc-wrapper.so.0.0.0)</div><div>==12429==    by 0x526C27B: lttng_probes_get_event_list (in /usr/lib64/liblttng-ust.so.0.0.0)</div><div>==12429==    by 0x526AD9E: ??? (in /usr/lib64/liblttng-ust.so.0.0.0)</div><div>==12429==    by 0x5267FAF: ??? (in /usr/lib64/liblttng-ust.so.0.0.0)</div><div>==12429==    by 0x503CFE2: start_thread (pthread_create.c:312)</div><div>==12429==    by 0x579BAFC: clone (clone.S:111)</div><div><br></div><div><br></div><div>There is a memleak seen when lttng_probes_get_event_list() gets called during listing of  </div><div>trace points, example "lttng list -u". Each time lttng_probes_get_event_list() gets called,</div><div>objd_alloc() is called and a new list of trace points generated in lttng_probes_get_event_list()</div><div>and stored.</div><div>This entry in the objd_table is not reused when "lttng list -u" gets called again in the future </div><div>and is also not removed until the application exits resulting in memory consumption. </div><div><br></div><div>I can see that the objd_table is meant to be used as a cache but somehow the full implementation is not present..is this a work still in progress ? If not, to solve this, whenever lttng_probes_get_event_list() is called, we could check if we have results available in the objd_table from an earlier call for a particular owner and name and re-use it. </div></div><div><br></div><div>Regards,</div><div>Aravind.</div></div>