Skip to content

Commit

Permalink
Fix: ust-consumerd: leak of stream control structure
Browse files Browse the repository at this point in the history
The following leak is reported by LeakSanitizer when
setup_metadata() fails to send the metadata stream to the relay
daemon:

  ==3050181==ERROR: LeakSanitizer: detected memory leaks

  Direct leak of 240 byte(s) in 5 object(s) allocated from:
      #0 0x7f5fce02cfb9 in __interceptor_calloc /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:154
      #1 0x7f5fcdd95a7a in zmalloc ../../../src/common/macros.h:23
      #2 0x7f5fcdd95a7a in lttng_ust_ctl_create_stream /home/jgalar/EfficiOS/src/lttng-ust/src/lib/lttng-ust-ctl/ustctl.c:1649

A consumer stream can have an allocated
`struct lttng_ust_ctl_consumer_stream *` (ustream) even if it is
not globally visible at the time of its teardown.

In the case of the user space consumer, the only site that creates
consumer stream instances ensures that the allocation of the
lttng_ust_ctl_consumer_stream succeeded, ensuring that the
consumer stream's 'ustream' is always set.

Signed-off-by: Jérémie Galarneau <[email protected]>
Change-Id: Ia4be7969e85bd8812ae13b042e1e100812a63c1d
  • Loading branch information
jgalar committed Mar 8, 2022
1 parent fc33156 commit 38aea17
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions src/common/consumer/consumer-stream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1092,6 +1092,7 @@ void consumer_stream_destroy(struct lttng_consumer_stream *stream,
* If the stream is not visible globally, this needs to be done
* outside of the consumer data lock section.
*/
destroy_close_stream(stream);
free_chan = unref_channel(stream);
}

Expand Down

0 comments on commit 38aea17

Please sign in to comment.