Skip to content

Occasional failure of address sanitizer in test "merc_aterm thread_aterm_pool::tests::test_thread_local_protection" #47

@mlaveaux

Description

@mlaveaux
     running 1 test
    test thread_aterm_pool::tests::test_thread_local_protection ... ok

    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 15 filtered out; finished in 0.02s
    
  stderr ───
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Registered thread_local protection set(s) 0
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Registered thread_local protection set(s) 1
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Registered thread_local protection set(s) 2
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] There are 1 terms, and 4 symbols
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Removed thread_local protection set(s) 0
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Protection set 0 has 0 roots, max 4 and 2 insertions
        Containers: 0 roots, max 0 and 0 insertions
        Symbols: 0 roots, max 4 and 1 insertions
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Acquired 10 read locks and 2 write locks
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] There are 1 terms, and 4 symbols
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Removed thread_local protection set(s) 2
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Protection set 2 has 0 roots, max 4 and 2 insertions
        Containers: 0 roots, max 0 and 0 insertions
        Symbols: 0 roots, max 4 and 1 insertions
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Acquired 10 read locks and 2 write locks
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] There are 1 terms, and 4 symbols
    [2025-12-14T21:27:28Z DEBUG merc_aterm::global_aterm_pool] Removed thread_local protection set(s) 1
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Protection set 1 has 0 roots, max 4 and 2 insertions
        Containers: 0 roots, max 0 and 0 insertions
        Symbols: 0 roots, max 4 and 1 insertions
    [2025-12-14T21:27:28Z DEBUG merc_aterm::thread_aterm_pool] Acquired 10 read locks and 2 write locks

    =================================================================
    ==9035==ERROR: LeakSanitizer: detected memory leaks

    Direct leak of 32 byte(s) in 1 object(s) allocated from:
        #0 0x55e01c2a0a24 in malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
        #1 0x55e01cceba1b in <std::alloc::System as core::alloc::global::GlobalAlloc>::alloc /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/alloc/unix.rs:14:22
        #2 0x55e01cd4ba3e in __rustc::__rdl_alloc /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/alloc.rs:455:20
        #3 0x55e01c462f65 in <allocator_api2::alloc::global::Global>::alloc_impl /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.4.0/src/alloc/global.rs:35:21
        #4 0x55e01c462f65 in <allocator_api2::alloc::global::Global as allocator_api2::alloc::Allocator>::allocate /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.4.0/src/alloc/global.rs:100:14
        #5 0x55e01c462f65 in <merc_unsafety::stable_pointer_set::StablePointerSet<merc_aterm::symbol_pool::SharedSymbol, rustc_hash::FxBuildHasher>>::insert_equiv::<merc_aterm::symbol_pool::SharedSymbolLookup<&str>> /home/runner/work/merc/merc/crates/unsafety/src/stable_pointer_set.rs:297:34
        #6 0x55e01c355f53 in <merc_aterm::symbol_pool::SymbolPool>::create::<&str> /home/runner/work/merc/merc/crates/aterm/src/symbol_pool.rs:47:54
        #7 0x55e01c383947 in <merc_aterm::global_aterm_pool::GlobalTermPool>::create_symbol::<<merc_aterm::thread_aterm_pool::ThreadTermPool>::create_symbol<&str>::{closure#0}, &str> /home/runner/work/merc/merc/crates/aterm/src/global_aterm_pool.rs:160:34
        #8 0x55e01c34414f in <merc_aterm::symbol::Symbol>::new::<&str>::{closure#0} /home/runner/work/merc/merc/crates/aterm/src/symbol.rs:150:46
        #9 0x55e01c3db13b in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::try_with::<<std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
        #10 0x55e01c3d83e1 in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with::<<std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
        #11 0x55e01c3df7b7 in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow::<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:724:14
        #12 0x55e01c3fb1b3 in merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0} /home/runner/work/merc/merc/crates/aterm/src/thread_aterm_pool.rs:482:34
        #13 0x55e01c411338 in std::sys::backtrace::__rust_begin_short_backtrace::<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
        #14 0x55e01c4557b9 in std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
        #15 0x55e01c45cfaa in __rust_try merc_aterm.25dac6220e2e48d-cgu.14
        #16 0x55e01c467a50 in std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
        #17 0x55e01c417467 in std::thread::lifecycle::spawn_unchecked::<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1} /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:90:26
        #18 0x55e01c390c6d in <std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
        #19 0x55e01cd1b495 in <std::sys::thread::unix::Thread>::new::thread_start /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread/unix.rs:119:17
        #20 0x55e01c29e396 in asan_thread_start(void*) /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:239:28

    Indirect leak of 4 byte(s) in 1 object(s) allocated from:
        #0 0x55e01c2a0a24 in malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
        #1 0x55e01cceba1b in <std::alloc::System as core::alloc::global::GlobalAlloc>::alloc /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/alloc/unix.rs:14:22
        #2 0x55e01cd4ba3e in __rustc::__rdl_alloc /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/alloc.rs:455:20
        #3 0x55e01cf6b094 in <alloc::alloc::Global>::alloc_impl /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:190:73
        #4 0x55e01cf6f038 in <alloc::alloc::Global as core::alloc::Allocator>::allocate /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:251:14
        #5 0x55e01cf779cc in <alloc::raw_vec::RawVecInner>::with_capacity_in /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:419:15
        #6 0x55e01cf74e49 in <alloc::raw_vec::RawVec<u8>>::with_capacity_in /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:187:20
        #7 0x55e01cf6faab in <[u8]>::to_vec_in::<alloc::alloc::Global> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/slice.rs:400:16
        #8 0x55e01cf03589 in <alloc::string::String as core::convert::From<&str>>::from /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rs:3084:11
        #9 0x55e01c36f4a5 in <&merc_aterm::symbol_pool::SharedSymbolLookup<&str> as core::convert::Into<merc_aterm::symbol_pool::SharedSymbol>>::into /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:778:9
        #10 0x55e01c355f53 in <merc_aterm::symbol_pool::SymbolPool>::create::<&str> /home/runner/work/merc/merc/crates/aterm/src/symbol_pool.rs:47:54
        #11 0x55e01c383947 in <merc_aterm::global_aterm_pool::GlobalTermPool>::create_symbol::<<merc_aterm::thread_aterm_pool::ThreadTermPool>::create_symbol<&str>::{closure#0}, &str> /home/runner/work/merc/merc/crates/aterm/src/global_aterm_pool.rs:160:34
        #12 0x55e01c34414f in <merc_aterm::symbol::Symbol>::new::<&str>::{closure#0} /home/runner/work/merc/merc/crates/aterm/src/symbol.rs:150:46
        #13 0x55e01c3db13b in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::try_with::<<std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
        #14 0x55e01c3d83e1 in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with::<<std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
        #15 0x55e01c3df7b7 in <std::thread::local::LocalKey<core::cell::RefCell<merc_aterm::thread_aterm_pool::ThreadTermPool>>>::with_borrow::<<merc_aterm::symbol::Symbol>::new<&str>::{closure#0}, merc_aterm::symbol::Symbol> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:724:14
        #16 0x55e01c3fb1b3 in merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0} /home/runner/work/merc/merc/crates/aterm/src/thread_aterm_pool.rs:482:34
        #17 0x55e01c411338 in std::sys::backtrace::__rust_begin_short_backtrace::<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
        #18 0x55e01c4557b9 in std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
        #19 0x55e01c45cfaa in __rust_try merc_aterm.25dac6220e2e48d-cgu.14
        #20 0x55e01c467a50 in std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
        #21 0x55e01c417467 in std::thread::lifecycle::spawn_unchecked::<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1} /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:90:26
        #22 0x55e01c390c6d in <std::thread::lifecycle::spawn_unchecked<merc_aterm::thread_aterm_pool::tests::test_thread_local_protection::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
        #23 0x55e01cd1b495 in <std::sys::thread::unix::Thread>::new::thread_start /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread/unix.rs:119:17
        #24 0x55e01c29e396 in asan_thread_start(void*) /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:239:28

    SUMMARY: AddressSanitizer: 36 byte(s) leaked in 2 allocation(s).

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions