From: "ufuk (Ufuk Kayserilioglu)" Date: 2021-12-28T22:36:42+00:00 Subject: [ruby-core:106881] [Ruby master Bug#18446] LSAN reporting Issue #18446 has been updated by ufuk (Ufuk Kayserilioglu). For native extension development, you might have better luck using https://github.com/Shopify/ruby_memcheck which ignores all the intentional "leaks" from inside CRuby. ---------------------------------------- Bug #18446: LSAN reporting https://bugs.ruby-lang.org/issues/18446#change-95689 * Author: ibylich (Ilya Bylich) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.0dev (2021-12-27T13:57:46Z master be476f38f9) [x86_64-darwin20] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- ASAN ships with LSAN (LeakSANinitizer) that (if compiled with ASAN) can be enabled by adding `ASAN_OPTIONS=detect_leaks=1` env variable. As I know it can also be injected dynamically via `LD_PRELOAD`/`DYLD_INSERT_LIBRARIES` on Linux/Mac. Currently it reports a bunch of memory leaks of different sizes: ``` ... 1 kilometer of leaks ... SUMMARY: AddressSanitizer: 540806 byte(s) leaked in 11450 allocation(s). ``` First of all, are these leaks real? valgrind also reports them. If they are not real, is there a way to make LSAN ignore them? As I know MRI uses ASAN programmatically in many place (like in `gc.h`) to poison (i.e. "mark"?) some memory areas, and so my hunch is that these leaks are false-positive. Then, is it possible to "fix" reporting? I'm asking because it'd be very useful for native extensions development, ASAN+LSAN is a good combo to find and unroll segfaults and memory leaks, but LSAN is barely usable right now. -- https://bugs.ruby-lang.org/ Unsubscribe: