Skip to content

TSAN warnings when running multiple user-defined thread pools concurrently #1275

@gendx

Description

@gendx

The following test spawns 10 local Rayon thread pools in parallel, and runs a bunch of iterator work on each of them.

#[test]
fn test_concurrent_thread_pools() {
    use rayon::iter::{IntoParallelRefIterator, ParallelIterator};

    std::thread::scope(|scope| {
        // Spawn several Rayon thread pools.
        for _ in 0..10 {
            scope.spawn(|| {
                let rayon_pool = rayon::ThreadPoolBuilder::new()
                    .num_threads(4)
                    .build()
                    .unwrap();

                // Do some work on each pool.
                rayon_pool.install(|| {
                    // Doesn't really matter. Just make sure each thread pool has enough work.
                    const INPUT_LEN: u64 = 100_000;

                    // Doesn't matter much either, but more iterations mean higher chances of
                    // TSAN warnings.
                    for _ in 0..10 {
                        let input = (0..=INPUT_LEN).collect::<Vec<u64>>();
                        let sum = input.par_iter().sum::<u64>();
                        assert_eq!(sum, INPUT_LEN * (INPUT_LEN + 1) / 2);
                    }
                });
            });
        }
    });
}

On my machine, it reliably triggers TSAN warnings about data races, all related to crossbeam_epoch (crossbeam_epoch::internal::Global::try_advance, crossbeam_epoch::internal::Global::collect, <T as crossbeam_epoch::atomic::Pointable>::drop).

System details:

$ cargo +nightly --version --verbose
cargo 1.92.0-nightly (801d9b498 2025-10-04)
release: 1.92.0-nightly
commit-hash: 801d9b4981dd07e3aecdca1ab86834c13615737e
commit-date: 2025-10-04
host: x86_64-unknown-linux-gnu

TSAN invocation:

export RUSTFLAGS="-D warnings -C debug_assertions -Zsanitizer=thread"
cargo +nightly test --release -Zbuild-std --target=x86_64-unknown-linux-gnu

Full TSAN warnings with stack traces:

running 1 test
==================
WARNING: ThreadSanitizer: data race (pid=1852202)
  Write of size 8 at 0x72740002ee00 by thread T19:
    #0 free ??:? (paralight-b12df329bbbd1876+0x34be7a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 __rustc::__rdl_dealloc std.143dd04dfe943471-cgu.04:? (paralight-b12df329bbbd1876+0xed1684) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 <T as crossbeam_epoch::atomic::Pointable>::drop crossbeam_epoch.32bd66ef788b0d3c-cgu.0:? (paralight-b12df329bbbd1876+0xe9a3f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_epoch::deferred::Deferred::new::call crossbeam_epoch.32bd66ef788b0d3c-cgu.1:? (paralight-b12df329bbbd1876+0xe9b9ad) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe99b94) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe8297a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #13 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #14 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #15 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #16 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Previous atomic read of size 8 at 0x72740002ee00 by thread T35:
    #0 crossbeam_epoch::internal::Global::try_advance crossbeam_epoch.32bd66ef788b0d3c-cgu.0:? (paralight-b12df329bbbd1876+0xe99705) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe9999e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut rayon_core.400168e8efdf748d-cgu.07:? (paralight-b12df329bbbd1876+0xe95f97) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::try_fold rayon_core.400168e8efdf748d-cgu.03:? (paralight-b12df329bbbd1876+0xe8dc91) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe82bf2) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #13 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #14 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #15 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T19 (tid=1852222, running) created by thread T11 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T35 (tid=1852238, running) created by thread T24 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

SUMMARY: ThreadSanitizer: data race ??:? in free
==================
==================
WARNING: ThreadSanitizer: data race (pid=1852202)
  Write of size 8 at 0x7274001ef000 by thread T8:
    #0 free ??:? (paralight-b12df329bbbd1876+0x34be7a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 __rustc::__rdl_dealloc std.143dd04dfe943471-cgu.04:? (paralight-b12df329bbbd1876+0xed1684) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 <T as crossbeam_epoch::atomic::Pointable>::drop crossbeam_epoch.32bd66ef788b0d3c-cgu.0:? (paralight-b12df329bbbd1876+0xe9a663) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_epoch::deferred::Deferred::new::call crossbeam_epoch.32bd66ef788b0d3c-cgu.1:? (paralight-b12df329bbbd1876+0xe9bb1d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe99b94) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe8297a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #13 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #14 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #15 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #16 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #17 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #18 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #19 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #20 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #21 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #22 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #23 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #24 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #25 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #26 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #27 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #28 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #29 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #30 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #31 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #32 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #33 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #34 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7cf72b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #35 __rust_try paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7d1289) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #36 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707a47) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #37 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #38 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #39 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7cf72b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #40 __rust_try paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7d1289) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #41 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707a47) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #42 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #43 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #44 rayon_core::thread_pool::ThreadPool::install::{{closure}} paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3d9fad) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #45 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3ff2ca) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #46 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3ff2ca) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #47 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #48 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4ddc3e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #49 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #50 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #51 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #52 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #53 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #54 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #55 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #56 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Previous read of size 8 at 0x7274001ef000 by thread T19:
    #0 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe99ace) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe8297a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T8 (tid=1852211, running) created by thread T5 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T19 (tid=1852222, running) created by thread T11 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

SUMMARY: ThreadSanitizer: data race ??:? in free
==================
==================
WARNING: ThreadSanitizer: data race (pid=1852202)
  Write of size 8 at 0x727400180600 by thread T44:
    #0 free ??:? (paralight-b12df329bbbd1876+0x34be7a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 __rustc::__rdl_dealloc std.143dd04dfe943471-cgu.04:? (paralight-b12df329bbbd1876+0xed1684) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 <T as crossbeam_epoch::atomic::Pointable>::drop crossbeam_epoch.32bd66ef788b0d3c-cgu.0:? (paralight-b12df329bbbd1876+0xe9a663) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_epoch::deferred::Deferred::new::call crossbeam_epoch.32bd66ef788b0d3c-cgu.1:? (paralight-b12df329bbbd1876+0xe9bb1d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe99b94) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut rayon_core.400168e8efdf748d-cgu.07:? (paralight-b12df329bbbd1876+0xe95f97) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::try_fold rayon_core.400168e8efdf748d-cgu.03:? (paralight-b12df329bbbd1876+0xe8dc91) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe82bf2) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #13 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #14 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #15 rayon_core::job::StackJob<L,F,R>::run_inline paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3da3f2) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #16 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707bb5) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #17 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #18 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #19 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #20 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #21 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #22 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #23 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #24 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #25 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #26 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #27 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #28 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #29 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Previous read of size 8 at 0x727400180600 by thread T8:
    #0 crossbeam_epoch::internal::Global::collect ??:? (paralight-b12df329bbbd1876+0xe99ace) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 crossbeam_epoch::default::pin::{{closure}} rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a78e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 crossbeam_epoch::default::with_handle rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe8a4e7) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 crossbeam_deque::deque::Stealer<T>::steal rayon_core.400168e8efdf748d-cgu.01:? (paralight-b12df329bbbd1876+0xe898dd) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::WorkerThread::find_work rayon_core.400168e8efdf748d-cgu.00:? (paralight-b12df329bbbd1876+0xe8297a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe82373) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #12 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #13 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #14 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #15 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #16 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #17 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #18 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #19 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #20 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #21 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #22 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #23 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4696f3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #24 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #25 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x55ca55) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #26 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #27 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707d2b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #28 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #29 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #30 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7cf72b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #31 __rust_try paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7d1289) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #32 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707a47) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #33 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #34 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #35 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7cf72b) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #36 __rust_try paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x7d1289) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #37 rayon_core::join::join_context::{{closure}} paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x707a47) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #38 rayon_core::registry::in_worker paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x79f88d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #39 rayon::iter::plumbing::bridge_producer_consumer::helper paralight.ca2604a9752bae31-cgu.12:? (paralight-b12df329bbbd1876+0xb673ab) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #40 rayon_core::thread_pool::ThreadPool::install::{{closure}} paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3d9fad) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #41 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3ff2ca) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #42 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x3ff2ca) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #43 __rust_try paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x595631) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #44 <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute paralight.ca2604a9752bae31-cgu.00:? (paralight-b12df329bbbd1876+0x4ddc3e) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #45 rayon_core::registry::WorkerThread::wait_until_cold ??:? (paralight-b12df329bbbd1876+0xe824c9) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #46 rayon_core::registry::ThreadBuilder::run ??:? (paralight-b12df329bbbd1876+0xe83383) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #47 std::sys::backtrace::__rust_begin_short_backtrace ??:? (paralight-b12df329bbbd1876+0xe95daf) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #48 std::panicking::catch_unwind::do_call rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe9190c) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #49 __rust_try.llvm.1073886105133930615 rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe93921) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #50 core::ops::function::FnOnce::call_once{{vtable.shim}} rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91ad4) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #51 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #52 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T44 (tid=1852247, running) created by thread T11 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

  Thread T8 (tid=1852211, running) created by thread T5 at:
    #0 pthread_create ??:? (paralight-b12df329bbbd1876+0x34d22a) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #1 std::sys::thread::unix::Thread::new ??:? (paralight-b12df329bbbd1876+0xf51394) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #2 std::thread::Builder::spawn_unchecked rayon_core.400168e8efdf748d-cgu.05:? (paralight-b12df329bbbd1876+0xe91109) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #3 <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn ??:? (paralight-b12df329bbbd1876+0xe88113) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #4 rayon_core::registry::Registry::new paralight.ca2604a9752bae31-cgu.04:? (paralight-b12df329bbbd1876+0x76988d) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #5 rayon_core::thread_pool::ThreadPool::build paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xb999a3) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #6 std::sys::backtrace::__rust_begin_short_backtrace paralight.ca2604a9752bae31-cgu.14:? (paralight-b12df329bbbd1876+0xb84c43) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #7 std::panicking::catch_unwind::do_call paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba5bff) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #8 __rust_try.llvm.2012152785340314153 paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xbb6371) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #9 core::ops::function::FnOnce::call_once{{vtable.shim}} paralight.ca2604a9752bae31-cgu.15:? (paralight-b12df329bbbd1876+0xba7871) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #10 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once std.143dd04dfe943471-cgu.09:? (paralight-b12df329bbbd1876+0xf0c788) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)
    #11 std::sys::thread::unix::Thread::new::thread_start std.143dd04dfe943471-cgu.15:? (paralight-b12df329bbbd1876+0xf50e49) (BuildId: 632355c6cdc6733a800d61fbdb55837a82c0d6c2)

SUMMARY: ThreadSanitizer: data race ??:? in free
==================
test test_concurrent_thread_pools ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s

ThreadSanitizer: reported 3 warnings
error: test failed, to rerun pass `--lib`

The stack traces don't look related to the previously filed bugs (#812, #1212) and appear related specifically to spawning multiple Rayon thread pools and using them at the same time.


Note: Why would anyone want to spawn multiple Rayon pools and use them at the same time?

  • This is what happens when running a test suite with cargo test where each test case is creating its own thread pool (e.g. https://github.com/gendx/paralight/blob/main/src/lib.rs).
  • In a real-world program, there can be several components that independently spawn their own thread pool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions