Compiling active_standby v0.6.1 (/home/matan/rust/active_standby)
Finished bench [optimized] target(s) in 2.22s
Running unittests (target/x86_64-unknown-linux-gnu/release/deps/active_standby-e6c2bea62012df84)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
Running unittests (target/x86_64-unknown-linux-gnu/release/deps/bench-0c03017c285e2006)
running 1 test
==================
WARNING: ThreadSanitizer: data race (pid=350626)
Write of size 4 at 0x7b0400000190 by thread T2:
#0 <bench::AddOne as active_standby::write::UpdateTables<i32,()>>::apply_first /home/matan/rust/active_standby/benches/bench.rs:22 (bench-0c03017c285e2006+0x9f3ec)
#1 active_standby::write::UpdateTables::apply_second /home/matan/rust/active_standby/src/write.rs:17 (bench-0c03017c285e2006+0x9f3ec)
#2 active_standby::write::WriteGuard<T>::update_tables::{{closure}} /home/matan/rust/active_standby/src/write.rs:224 (bench-0c03017c285e2006+0xa9fba)
#3 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa9fba)
#4 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x9e659)
#5 active_standby::write::Writer<T>::write /home/matan/rust/active_standby/src/write.rs:184 (bench-0c03017c285e2006+0xa9aa5)
#6 active_standby::write::SendWriter<T>::write /home/matan/rust/active_standby/src/write.rs:307 (bench-0c03017c285e2006+0xa9ce3)
#7 bench::read_guard_readwrite_contention::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:180 (bench-0c03017c285e2006+0x9f22a)
#8 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9e8b2)
#9 std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:481 (bench-0c03017c285e2006+0xaa63e)
#10 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xaa63e)
#11 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xaa63e)
#12 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#13 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#14 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xa850d)
#15 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xa850d)
#16 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa518c)
#17 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa518c)
#18 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa518c)
#19 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa518c)
#20 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#21 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#22 std::sys::unix::thread::Thread::new::thread_start /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71 (bench-0c03017c285e2006+0x11538c)
Previous read of size 4 at 0x7b0400000190 by main thread:
#0 bench::read_guard_readwrite_contention::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:186 (bench-0c03017c285e2006+0x9baba)
#1 test::bench::ns_iter_inner /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:117 (bench-0c03017c285e2006+0x9baba)
#2 test::bench::iter /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:147 (bench-0c03017c285e2006+0x9c84a)
#3 test::bench::Bencher::iter /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:49 (bench-0c03017c285e2006+0x9c84a)
#4 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:184 (bench-0c03017c285e2006+0xa05f3)
#5 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#6 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#7 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#8 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#9 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#10 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#11 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#12 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#13 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#14 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#15 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#16 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#17 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#18 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#19 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#20 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#21 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#22 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#23 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#24 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#25 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#26 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#27 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#28 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#29 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#30 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#31 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#32 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#33 main ??:? (bench-0c03017c285e2006+0xa07ea)
#34 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#35 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
Location is heap block of size 4 at 0x7b0400000190 allocated by main thread:
#0 malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:651 (bench-0c03017c285e2006+0x27fd4)
#1 std::sys::unix::alloc::<impl core::alloc::global::GlobalAlloc for std::alloc::System>::alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/alloc.rs:14 (bench-0c03017c285e2006+0x1233bc)
#2 __rdl_alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/alloc.rs:355 (bench-0c03017c285e2006+0x1233bc)
#3 alloc::alloc::alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:86 (bench-0c03017c285e2006+0xa10f0)
#4 alloc::alloc::Global::alloc_impl /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:166 (bench-0c03017c285e2006+0xa10f0)
#5 <alloc::alloc::Global as core::alloc::Allocator>::allocate /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:226 (bench-0c03017c285e2006+0xa10f0)
#6 alloc::alloc::exchange_malloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:316 (bench-0c03017c285e2006+0xa10f0)
#7 alloc::boxed::Box<T>::new /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:194 (bench-0c03017c285e2006+0xa10f0)
#8 active_standby::table::Table<T>::new /home/matan/rust/active_standby/src/table.rs:49 (bench-0c03017c285e2006+0xa10f0)
#9 active_standby::write::Writer<T>::with_readers_capacity /home/matan/rust/active_standby/src/write.rs:95 (bench-0c03017c285e2006+0xa94e8)
#10 active_standby::write::Writer<T>::new /home/matan/rust/active_standby/src/write.rs:90 (bench-0c03017c285e2006+0xa94e8)
#11 active_standby::write::SendWriter<T>::new /home/matan/rust/active_standby/src/write.rs:290 (bench-0c03017c285e2006+0xa9c7e)
#12 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:166 (bench-0c03017c285e2006+0xa0570)
#13 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#14 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#15 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#16 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#17 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#18 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#19 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#20 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#21 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#22 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#23 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#24 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#25 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#26 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#27 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#28 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#29 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#30 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#31 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#32 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#33 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#34 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#35 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#36 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#37 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#38 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#39 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#40 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#41 main ??:? (bench-0c03017c285e2006+0xa07ea)
#42 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#43 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
Thread T2 (tid=350629, running) created by main thread at:
#0 pthread_create /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965 (bench-0c03017c285e2006+0x2958b)
#1 std::sys::unix::thread::Thread::new /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:50 (bench-0c03017c285e2006+0x11514d)
#2 std::thread::Builder::spawn_unchecked /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:505 (bench-0c03017c285e2006+0xa265d)
#3 std::thread::Builder::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:388 (bench-0c03017c285e2006+0xa265d)
#4 std::thread::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:627 (bench-0c03017c285e2006+0xa265d)
#5 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:179 (bench-0c03017c285e2006+0xa05e6)
#6 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#7 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#8 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#9 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#10 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#11 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#12 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#13 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#14 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#15 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#16 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#17 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#18 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#19 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#20 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#21 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#22 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#23 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#24 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#25 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#26 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#27 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#28 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#29 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#30 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#31 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#32 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#33 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#34 main ??:? (bench-0c03017c285e2006+0xa07ea)
#35 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#36 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
SUMMARY: ThreadSanitizer: data race /home/matan/rust/active_standby/benches/bench.rs:22 in <bench::AddOne as active_standby::write::UpdateTables<i32,()>>::apply_first
==================
==================
WARNING: ThreadSanitizer: data race (pid=350626)
Write of size 4 at 0x7b04000016a0 by thread T2:
#0 <bench::AddOne as active_standby::write::UpdateTables<i32,()>>::apply_first /home/matan/rust/active_standby/benches/bench.rs:22 (bench-0c03017c285e2006+0x9f3ec)
#1 active_standby::write::UpdateTables::apply_second /home/matan/rust/active_standby/src/write.rs:17 (bench-0c03017c285e2006+0x9f3ec)
#2 active_standby::write::WriteGuard<T>::update_tables::{{closure}} /home/matan/rust/active_standby/src/write.rs:224 (bench-0c03017c285e2006+0xa9fba)
#3 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa9fba)
#4 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x9e659)
#5 active_standby::write::Writer<T>::write /home/matan/rust/active_standby/src/write.rs:184 (bench-0c03017c285e2006+0xa9aa5)
#6 active_standby::write::SendWriter<T>::write /home/matan/rust/active_standby/src/write.rs:307 (bench-0c03017c285e2006+0xa9ce3)
#7 bench::read_guard_readwrite_contention::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:180 (bench-0c03017c285e2006+0x9f22a)
#8 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9e8b2)
#9 std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:481 (bench-0c03017c285e2006+0xaa63e)
#10 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xaa63e)
#11 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xaa63e)
#12 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#13 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#14 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xa850d)
#15 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xa850d)
#16 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa518c)
#17 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa518c)
#18 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa518c)
#19 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa518c)
#20 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#21 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#22 std::sys::unix::thread::Thread::new::thread_start /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71 (bench-0c03017c285e2006+0x11538c)
Previous read of size 4 at 0x7b04000016a0 by thread T1:
#0 bench::read_guard_readwrite_contention::{{closure}}::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:173 (bench-0c03017c285e2006+0x9e7e1)
#1 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9e7e1)
#2 std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:481 (bench-0c03017c285e2006+0xaa84b)
#3 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xaa84b)
#4 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xaa84b)
#5 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#6 __rust_try.llvm.15192814867331769195 :? (bench-0c03017c285e2006+0xaaacc)
#7 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xa86b6)
#8 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xa86b6)
#9 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa40b4)
#10 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa40b4)
#11 std::thread::Builder::spawn_unchecked::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:480 (bench-0c03017c285e2006+0xa40b4)
#12 core::ops::function::FnOnce::call_once{{vtable-shim}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0xa40b4)
#13 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#14 <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1575 (bench-0c03017c285e2006+0x11dc2b)
#15 std::sys::unix::thread::Thread::new::thread_start /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71 (bench-0c03017c285e2006+0x11538c)
Location is heap block of size 4 at 0x7b04000016a0 allocated by main thread:
#0 malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:651 (bench-0c03017c285e2006+0x27fd4)
#1 std::sys::unix::alloc::<impl core::alloc::global::GlobalAlloc for std::alloc::System>::alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/alloc.rs:14 (bench-0c03017c285e2006+0x1233bc)
#2 __rdl_alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/alloc.rs:355 (bench-0c03017c285e2006+0x1233bc)
#3 alloc::alloc::alloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:86 (bench-0c03017c285e2006+0xa1113)
#4 alloc::alloc::Global::alloc_impl /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:166 (bench-0c03017c285e2006+0xa1113)
#5 <alloc::alloc::Global as core::alloc::Allocator>::allocate /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:226 (bench-0c03017c285e2006+0xa1113)
#6 alloc::alloc::exchange_malloc /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:316 (bench-0c03017c285e2006+0xa1113)
#7 alloc::boxed::Box<T>::new /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:194 (bench-0c03017c285e2006+0xa1113)
#8 active_standby::table::Table<T>::new /home/matan/rust/active_standby/src/table.rs:50 (bench-0c03017c285e2006+0xa1113)
#9 active_standby::write::Writer<T>::with_readers_capacity /home/matan/rust/active_standby/src/write.rs:95 (bench-0c03017c285e2006+0xa94e8)
#10 active_standby::write::Writer<T>::new /home/matan/rust/active_standby/src/write.rs:90 (bench-0c03017c285e2006+0xa94e8)
#11 active_standby::write::SendWriter<T>::new /home/matan/rust/active_standby/src/write.rs:290 (bench-0c03017c285e2006+0xa9c7e)
#12 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:166 (bench-0c03017c285e2006+0xa0570)
#13 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#14 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#15 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#16 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#17 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#18 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#19 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#20 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#21 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#22 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#23 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#24 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#25 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#26 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#27 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#28 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#29 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#30 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#31 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#32 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#33 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#34 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#35 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#36 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#37 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#38 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#39 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#40 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#41 main ??:? (bench-0c03017c285e2006+0xa07ea)
#42 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#43 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
Thread T2 (tid=350629, running) created by main thread at:
#0 pthread_create /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965 (bench-0c03017c285e2006+0x2958b)
#1 std::sys::unix::thread::Thread::new /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:50 (bench-0c03017c285e2006+0x11514d)
#2 std::thread::Builder::spawn_unchecked /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:505 (bench-0c03017c285e2006+0xa265d)
#3 std::thread::Builder::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:388 (bench-0c03017c285e2006+0xa265d)
#4 std::thread::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:627 (bench-0c03017c285e2006+0xa265d)
#5 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:179 (bench-0c03017c285e2006+0xa05e6)
#6 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#7 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#8 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#9 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#10 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#11 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#12 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#13 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#14 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#15 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#16 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#17 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#18 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#19 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#20 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#21 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#22 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#23 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#24 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#25 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#26 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#27 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#28 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#29 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#30 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#31 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#32 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#33 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#34 main ??:? (bench-0c03017c285e2006+0xa07ea)
#35 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#36 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
Thread T1 (tid=350628, running) created by main thread at:
#0 pthread_create /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965 (bench-0c03017c285e2006+0x2958b)
#1 std::sys::unix::thread::Thread::new /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:50 (bench-0c03017c285e2006+0x11514d)
#2 std::thread::Builder::spawn_unchecked /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:505 (bench-0c03017c285e2006+0xa2fa2)
#3 std::thread::Builder::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:388 (bench-0c03017c285e2006+0xa2fa2)
#4 std::thread::spawn /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:627 (bench-0c03017c285e2006+0xa2fa2)
#5 bench::read_guard_readwrite_contention::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:171 (bench-0c03017c285e2006+0xa7e7d)
#6 core::iter::adapters::map::map_fold::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:82 (bench-0c03017c285e2006+0xa7e7d)
#7 core::iter::traits::iterator::Iterator::fold /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2112 (bench-0c03017c285e2006+0xa7e7d)
#8 <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:122 (bench-0c03017c285e2006+0xa7e7d)
#9 core::iter::traits::iterator::Iterator::for_each /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:736 (bench-0c03017c285e2006+0xa7d74)
#10 <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:40 (bench-0c03017c285e2006+0xa7d74)
#11 <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:56 (bench-0c03017c285e2006+0xa7d74)
#12 <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:33 (bench-0c03017c285e2006+0xa7d74)
#13 <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:2449 (bench-0c03017c285e2006+0xa05af)
#14 core::iter::traits::iterator::Iterator::collect /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:1748 (bench-0c03017c285e2006+0xa05af)
#15 bench::read_guard_readwrite_contention /home/matan/rust/active_standby/benches/bench.rs:168 (bench-0c03017c285e2006+0xa05af)
#16 bench::read_guard_readwrite_contention_1 /home/matan/rust/active_standby/benches/bench.rs:192 (bench-0c03017c285e2006+0x9fba0)
#17 bench::read_guard_readwrite_contention_1::{{closure}} /home/matan/rust/active_standby/benches/bench.rs:191 (bench-0c03017c285e2006+0x9fba0)
#18 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9fba0)
#19 core::ops::function::FnMut::call_mut /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:150 (bench-0c03017c285e2006+0xc84ad)
#20 test::bench::Bencher::bench /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:56 (bench-0c03017c285e2006+0xc84ad)
#21 test::bench::benchmark::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xbeef9)
#22 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:347 (bench-0c03017c285e2006+0xbeef9)
#23 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0xbeef9)
#24 __rust_try.llvm.9764174548795281092 :? (bench-0c03017c285e2006+0xc3e2c)
#25 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0xbebb3)
#26 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0xbebb3)
#27 test::bench::benchmark /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/bench.rs:208 (bench-0c03017c285e2006+0xc97a3)
#28 test::run_test /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:548 (bench-0c03017c285e2006+0xb87c5)
#29 test::run_tests /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:381 (bench-0c03017c285e2006+0xb6cad)
#30 test::console::run_tests_console /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:290 (bench-0c03017c285e2006+0xd03da)
#31 test::test_main /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:122 (bench-0c03017c285e2006+0xb3d60)
#32 test::test_main_static /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:141 (bench-0c03017c285e2006+0xb3fe9)
#33 bench::main /home/matan/rust/active_standby/benches/bench.rs:1 (bench-0c03017c285e2006+0xa076c)
#34 core::ops::function::FnOnce::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227 (bench-0c03017c285e2006+0x9eb43)
#35 std::sys_common::backtrace::__rust_begin_short_backtrace /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125 (bench-0c03017c285e2006+0x9eb43)
#36 std::rt::lang_start::{{closure}} /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:49 (bench-0c03017c285e2006+0x9ebdd)
#37 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259 (bench-0c03017c285e2006+0x113ec5)
#38 std::panicking::try::do_call /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:401 (bench-0c03017c285e2006+0x113ec5)
#39 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#40 __rust_try.llvm.6068021974626685259 :? (bench-0c03017c285e2006+0x115715)
#41 std::panicking::try /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:365 (bench-0c03017c285e2006+0x113e00)
#42 std::panic::catch_unwind /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:434 (bench-0c03017c285e2006+0x147a25)
#43 std::rt::lang_start_internal /home/matan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:34 (bench-0c03017c285e2006+0x14071c)
#44 main ??:? (bench-0c03017c285e2006+0xa07ea)
#45 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
#46 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308 (libc.so.6+0x270b2)
SUMMARY: ThreadSanitizer: data race /home/matan/rust/active_standby/benches/bench.rs:22 in <bench::AddOne as active_standby::write::UpdateTables<i32,()>>::apply_first
==================
test read_guard_readwrite_contention_1 ... bench: 567 ns/iter (+/- 266)
test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured; 10 filtered out; finished in 0.21s
ThreadSanitizer: reported 2 warnings
error: bench failed