crossbeam-rs / crossbeam

Tools for concurrent programming in Rust
Apache License 2.0
7.36k stars 464 forks source link

ThreadSanitizer data race alert in read_volatile #646

Closed nical closed 3 years ago

nical commented 3 years ago

Hi, this alert was thrown by TSAN in Firefox's CI

I see that there's another TSAN alert filed in #644, though the stack traces look different.

   Read of size 8 at 0x7b6000171690 by thread T21:
     #0 core::ptr::read_volatile::h6791bf575cf2c252 rustc/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1052:14 (libxul.so+0x7ec3d0e)
     #1 crossbeam_deque::deque::Buffer$LT$T$GT$::read::he4d85a69b6533a4f gecko/third_party/rust/crossbeam-deque/src/deque.rs:80:9 (libxul.so+0x7ec3d0e)
     #2 crossbeam_deque::deque::Stealer$LT$T$GT$::steal::h7d7d7c8ad750caf4 gecko/third_party/rust/crossbeam-deque/src/deque.rs:635:29 (libxul.so+0x7ec3d0e)

   Previous write of size 8 at 0x7b6000171690 by thread T20:
     #0 core::ptr::write_volatile::h8f71d3407194afbe rustc/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1124:9 (libxul.so+0x7a02678)
     #1 crossbeam_deque::deque::Buffer$LT$T$GT$::write::h15461ac2d7b03e3f gecko/third_party/rust/crossbeam-deque/src/deque.rs:70:9 (libxul.so+0x7a02678)
     #2 crossbeam_deque::deque::Worker$LT$T$GT$::push::hf881565f3d17d184 gecko/third_party/rust/crossbeam-deque/src/deque.rs:413:13 (libxul.so+0x7a02678)
     #3 rayon_core::registry::WorkerThread::push::h497b8c09f0413668 gecko/third_party/rust/rayon-core/src/registry.rs:667:9 (libxul.so+0x7a02678)
Full Log ``` ================== WARNING: ThreadSanitizer: data race (pid=3359) Read of size 8 at 0x7b6000171690 by thread T21: #0 core::ptr::read_volatile::h6791bf575cf2c252 rustc/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1052:14 (libxul.so+0x7ec3d0e) #1 crossbeam_deque::deque::Buffer$LT$T$GT$::read::he4d85a69b6533a4f gecko/third_party/rust/crossbeam-deque/src/deque.rs:80:9 (libxul.so+0x7ec3d0e) #2 crossbeam_deque::deque::Stealer$LT$T$GT$::steal::h7d7d7c8ad750caf4 gecko/third_party/rust/crossbeam-deque/src/deque.rs:635:29 (libxul.so+0x7ec3d0e) #3 rayon_core::registry::WorkerThread::steal::_$u7b$$u7b$closure$u7d$$u7d$::h21c4fc3abea03194 gecko/third_party/rust/rayon-core/src/registry.rs:779:27 (libxul.so+0x7ec3d0e) #4 core::iter::traits::iterator::Iterator::find_map::check::_$u7b$$u7b$closure$u7d$$u7d$::h766eaacfe3484882 rustc/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2257:32 (libxul.so+0x7ec3d0e) #5 core::iter::adapters::filter_try_fold::_$u7b$$u7b$closure$u7d$$u7d$::h66f0579be88ec9f9 rustc/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:1078:44 (libxul.so+0x7ec3d0e) #6 core::iter::traits::iterator::Iterator::try_fold::hf4fdd7a8f07d4020 rustc/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:1888:21 (libxul.so+0x7ec341f) #7 _$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h91bbfbde6091fda7 rustc/lib/rustlib/src/rust/library/core/src/iter/adapters/chain.rs:109:19 (libxul.so+0x7ec341f) #8 _$LT$core..iter..adapters..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::try_fold::h0ec54019bed478e7 rustc/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:1127:9 (libxul.so+0x7ec341f) #9 core::iter::traits::iterator::Iterator::find_map::h42bf758b9bf304ed rustc/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2263:9 (libxul.so+0x7ec341f) #10 rayon_core::registry::WorkerThread::steal::h426c9838d772c2fb gecko/third_party/rust/rayon-core/src/registry.rs:774:23 (libxul.so+0x7ec341f) #11 rayon_core::registry::WorkerThread::wait_until_cold::_$u7b$$u7b$closure$u7d$$u7d$::h4d67682b936402e3 gecko/third_party/rust/rayon-core/src/registry.rs:726:29 (libxul.so+0x7ec341f) #12 core::option::Option$LT$T$GT$::or_else::ha8a66c1e2f1cf169 rustc/lib/rustlib/src/rust/library/core/src/option.rs:786:21 (libxul.so+0x7ec341f) #13 rayon_core::registry::WorkerThread::wait_until_cold::hbe258d25c64c48f5 gecko/third_party/rust/rayon-core/src/registry.rs:724:32 (libxul.so+0x7ec341f) #14 rayon_core::registry::WorkerThread::wait_until::hb4abdecec6e64f2c gecko/third_party/rust/rayon-core/src/registry.rs:704:13 (libxul.so+0x7ec76a5) #15 rayon_core::registry::main_loop::h8915ba197fff28f4 gecko/third_party/rust/rayon-core/src/registry.rs:837:5 (libxul.so+0x7ec76a5) #16 rayon_core::registry::ThreadBuilder::run::hb658baf32f1c0edf gecko/third_party/rust/rayon-core/src/registry.rs:56:18 (libxul.so+0x7ec76a5) #17 _$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$::spawn::_$u7b$$u7b$closure$u7d$$u7d$::ha6fa00eac0719f1d gecko/third_party/rust/rayon-core/src/registry.rs:101:20 (libxul.so+0x7ec76a5) #18 std::sys_common::backtrace::__rust_begin_short_backtrace::he530ba71b240257e rustc/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125:18 (libxul.so+0x7ec76a5) #19 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #20 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #21 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #22 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #23 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #24 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #25 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #26 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #27 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #28 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #29 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #30 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #31 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #32 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #33 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::hb4d0520786147807 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #34 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h7b3e75c823aaab91 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #35 std::sys::unix::thread::Thread::new::thread_start::h4b687605f586dc2f rustc/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71:17 (libxul.so+0x7ff8de6) Previous write of size 8 at 0x7b6000171690 by thread T20: #0 core::ptr::write_volatile::h8f71d3407194afbe rustc/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1124:9 (libxul.so+0x7a02678) #1 crossbeam_deque::deque::Buffer$LT$T$GT$::write::h15461ac2d7b03e3f gecko/third_party/rust/crossbeam-deque/src/deque.rs:70:9 (libxul.so+0x7a02678) #2 crossbeam_deque::deque::Worker$LT$T$GT$::push::hf881565f3d17d184 gecko/third_party/rust/crossbeam-deque/src/deque.rs:413:13 (libxul.so+0x7a02678) #3 rayon_core::registry::WorkerThread::push::h497b8c09f0413668 gecko/third_party/rust/rayon-core/src/registry.rs:667:9 (libxul.so+0x7a02678) #4 rayon_core::scope::ScopeFifo::spawn_fifo::h83d1f4771ec0a24d gecko/third_party/rust/rayon-core/src/scope/mod.rs:504:21 (libxul.so+0x7a02678) #5 style::parallel::traverse_nodes::hfbc3f27063231a4b gecko/servo/components/style/parallel.rs:289:13 (libxul.so+0x7a02678) #6 style::driver::traverse_dom::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h1e994ddaf2b88e96 gecko/servo/components/style/driver.rs:144:25 (libxul.so+0x7a02678) #7 rayon_core::scope::scope_fifo::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h84fca416f898a3c6 gecko/third_party/rust/rayon-core/src/scope/mod.rs:384:55 (libxul.so+0x7a02678) #8 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h439a2e9a6e484a6f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7a02678) #9 std::panicking::try::do_call::hd34b79114352011c rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7a02678) #10 std::panicking::try::he5dfc17084dd2028 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7a02678) #11 std::panic::catch_unwind::h4bfbdf4250667f1c rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7a02678) #12 rayon_core::unwind::halt_unwinding::he9c51ae28fb6252c gecko/third_party/rust/rayon-core/src/unwind.rs:17:5 (libxul.so+0x7a02678) #13 rayon_core::scope::ScopeBase::execute_job_closure::h3ffd29d423fd31c5 gecko/third_party/rust/rayon-core/src/scope/mod.rs:561:15 (libxul.so+0x7a02678) #14 rayon_core::scope::ScopeBase::complete::hb7ce8bd9d45d9b1e gecko/third_party/rust/rayon-core/src/scope/mod.rs:536:22 (libxul.so+0x7a02678) #15 rayon_core::scope::scope_fifo::_$u7b$$u7b$closure$u7d$$u7d$::h6dc38ea34b72cf45 gecko/third_party/rust/rayon-core/src/scope/mod.rs:384:18 (libxul.so+0x7a02678) #16 rayon_core::registry::in_worker::h2f7f636d20fd61e1 gecko/third_party/rust/rayon-core/src/registry.rs:879:13 (libxul.so+0x79f82d5) #17 rayon_core::scope::scope_fifo::h6b7b6902c53e22d8 gecko/third_party/rust/rayon-core/src/scope/mod.rs:382:5 (libxul.so+0x79f82d5) #18 style::driver::traverse_dom::_$u7b$$u7b$closure$u7d$$u7d$::h8d54a183e7fd5fa2 gecko/servo/components/style/driver.rs:142:21 (libxul.so+0x79f82d5) #19 rayon_core::thread_pool::ThreadPool::install::_$u7b$$u7b$closure$u7d$$u7d$::ha78c861c62f6769f gecko/third_party/rust/rayon-core/src/thread_pool/mod.rs:110:40 (libxul.so+0x79f82d5) #20 rayon_core::registry::Registry::in_worker_cold::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6340f1bdf1d26b2b gecko/third_party/rust/rayon-core/src/registry.rs:469:21 (libxul.so+0x7a09829) #21 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::call::_$u7b$$u7b$closure$u7d$$u7d$::hd3fefb1fa62f23f2 gecko/third_party/rust/rayon-core/src/job.rs:113:21 (libxul.so+0x7a09829) #22 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h1eaafaf676aafbc4 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7a09829) #23 std::panicking::try::do_call::h4d0078a4404538d2 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7a09829) #24 std::panicking::try::h73495634cdd07c36 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7a09829) #25 std::panic::catch_unwind::h76540899313c3a96 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7a09829) #26 rayon_core::unwind::halt_unwinding::h3dcc7f6ebf38c07f gecko/third_party/rust/rayon-core/src/unwind.rs:17:5 (libxul.so+0x7a09829) #27 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::hd45eaed58ee9163b gecko/third_party/rust/rayon-core/src/job.rs:119:38 (libxul.so+0x7a09829) #28 rayon_core::job::JobRef::execute::h56853cba23978f09 gecko/third_party/rust/rayon-core/src/job.rs:59:9 (libxul.so+0x7ec3552) #29 rayon_core::registry::WorkerThread::execute::he5c2544d657e6948 gecko/third_party/rust/rayon-core/src/registry.rs:753:9 (libxul.so+0x7ec3552) #30 rayon_core::registry::WorkerThread::wait_until_cold::hbe258d25c64c48f5 gecko/third_party/rust/rayon-core/src/registry.rs:730:17 (libxul.so+0x7ec3552) #31 rayon_core::registry::WorkerThread::wait_until::hb4abdecec6e64f2c gecko/third_party/rust/rayon-core/src/registry.rs:704:13 (libxul.so+0x7ec76a5) #32 rayon_core::registry::main_loop::h8915ba197fff28f4 gecko/third_party/rust/rayon-core/src/registry.rs:837:5 (libxul.so+0x7ec76a5) #33 rayon_core::registry::ThreadBuilder::run::hb658baf32f1c0edf gecko/third_party/rust/rayon-core/src/registry.rs:56:18 (libxul.so+0x7ec76a5) #34 _$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$::spawn::_$u7b$$u7b$closure$u7d$$u7d$::ha6fa00eac0719f1d gecko/third_party/rust/rayon-core/src/registry.rs:101:20 (libxul.so+0x7ec76a5) #35 std::sys_common::backtrace::__rust_begin_short_backtrace::he530ba71b240257e rustc/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125:18 (libxul.so+0x7ec76a5) #36 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #37 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #38 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #39 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #40 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #41 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #42 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #43 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #44 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #45 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #46 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #47 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #48 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #49 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #50 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::hb4d0520786147807 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #51 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h7b3e75c823aaab91 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #52 std::sys::unix::thread::Thread::new::thread_start::h4b687605f586dc2f rustc/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71:17 (libxul.so+0x7ff8de6) Location is heap block of size 1024 at 0x7b6000171400 allocated by thread T20: #0 malloc llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:652:5 (firefox+0x54e5c) #1 std::sys::unix::alloc::_$LT$impl$u20$core..alloc..global..GlobalAlloc$u20$for$u20$std..alloc..System$GT$::alloc::h6641e4e4eed70206 rustc/lib/rustlib/src/rust/library/std/src/sys/unix/alloc.rs:14:13 (libxul.so+0x7ff73ac) #2 __rdl_alloc rustc/lib/rustlib/src/rust/library/std/src/alloc.rs:356:13 (libxul.so+0x7ff73ac) #3 alloc::alloc::alloc::h8ef18e7b6be25dca rustc/lib/rustlib/src/rust/library/alloc/src/alloc.rs:84:14 (libxul.so+0x7ec38bf) #4 alloc::alloc::Global::alloc_impl::he32e5a11b898c446 rustc/lib/rustlib/src/rust/library/alloc/src/alloc.rs:164:73 (libxul.so+0x7ec38bf) #5 _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..AllocRef$GT$::alloc::h7d27e330cf455f9a rustc/lib/rustlib/src/rust/library/alloc/src/alloc.rs:224:9 (libxul.so+0x7ec38bf) #6 alloc::raw_vec::RawVec$LT$T$C$A$GT$::allocate_in::h0482226b7eeb04db rustc/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:189:45 (libxul.so+0x7ec38bf) #7 alloc::raw_vec::RawVec$LT$T$C$A$GT$::with_capacity_in::h80ede2078ddfe4d7 rustc/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:130:9 (libxul.so+0x7ec38bf) #8 alloc::raw_vec::RawVec$LT$T$GT$::with_capacity::h282c32ce8029e35b rustc/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:93:9 (libxul.so+0x7ec38bf) #9 alloc::vec::Vec$LT$T$GT$::with_capacity::h6c61519b6bb16e62 rustc/lib/rustlib/src/rust/library/alloc/src/vec.rs:363:20 (libxul.so+0x7ec38bf) #10 crossbeam_deque::deque::Buffer$LT$T$GT$::alloc::ha04a5d9bd62d9c84 gecko/third_party/rust/crossbeam-deque/src/deque.rs:45:21 (libxul.so+0x7ec38bf) #11 crossbeam_deque::deque::Worker$LT$T$GT$::resize::hb280cc67ffb0066a gecko/third_party/rust/crossbeam-deque/src/deque.rs:292:19 (libxul.so+0x7ec38bf) #12 crossbeam_deque::deque::Worker$LT$T$GT$::pop::h00911fa64217b311 gecko/third_party/rust/crossbeam-deque/src/deque.rs:526:33 (libxul.so+0x7ec3723) #13 rayon_core::registry::WorkerThread::take_local_job::h414cf28f6c815c51 gecko/third_party/rust/rayon-core/src/registry.rs:689:26 (libxul.so+0x7ec3723) #14 rayon_core::registry::WorkerThread::wait_until_cold::hbe258d25c64c48f5 gecko/third_party/rust/rayon-core/src/registry.rs:724:32 (libxul.so+0x7ec3723) #15 rayon_core::registry::WorkerThread::wait_until::hb4abdecec6e64f2c gecko/third_party/rust/rayon-core/src/registry.rs:704:13 (libxul.so+0x7a03de2) #16 rayon_core::scope::ScopeBase::steal_till_jobs_complete::h455a123789391b43 gecko/third_party/rust/rayon-core/src/scope/mod.rs:596:9 (libxul.so+0x7a03de2) #17 rayon_core::scope::ScopeBase::complete::hb7ce8bd9d45d9b1e gecko/third_party/rust/rayon-core/src/scope/mod.rs:537:9 (libxul.so+0x7a03de2) #18 rayon_core::scope::scope_fifo::_$u7b$$u7b$closure$u7d$$u7d$::h6dc38ea34b72cf45 gecko/third_party/rust/rayon-core/src/scope/mod.rs:384:18 (libxul.so+0x7a03de2) #19 rayon_core::registry::in_worker::h2f7f636d20fd61e1 gecko/third_party/rust/rayon-core/src/registry.rs:879:13 (libxul.so+0x79f82d5) #20 rayon_core::scope::scope_fifo::h6b7b6902c53e22d8 gecko/third_party/rust/rayon-core/src/scope/mod.rs:382:5 (libxul.so+0x79f82d5) #21 style::driver::traverse_dom::_$u7b$$u7b$closure$u7d$$u7d$::h8d54a183e7fd5fa2 gecko/servo/components/style/driver.rs:142:21 (libxul.so+0x79f82d5) #22 rayon_core::thread_pool::ThreadPool::install::_$u7b$$u7b$closure$u7d$$u7d$::ha78c861c62f6769f gecko/third_party/rust/rayon-core/src/thread_pool/mod.rs:110:40 (libxul.so+0x79f82d5) #23 rayon_core::registry::in_worker::h2f7f636d20fd61e1 gecko/third_party/rust/rayon-core/src/registry.rs:879:13 (libxul.so+0x79f82d5) #24 rayon_core::scope::scope_fifo::h6b7b6902c53e22d8 gecko/third_party/rust/rayon-core/src/scope/mod.rs:382:5 (libxul.so+0x79f82d5) #25 style::driver::traverse_dom::_$u7b$$u7b$closure$u7d$$u7d$::h8d54a183e7fd5fa2 gecko/servo/components/style/driver.rs:142:21 (libxul.so+0x79f82d5) #26 rayon_core::thread_pool::ThreadPool::install::_$u7b$$u7b$closure$u7d$$u7d$::ha78c861c62f6769f gecko/third_party/rust/rayon-core/src/thread_pool/mod.rs:110:40 (libxul.so+0x79f82d5) #27 rayon_core::registry::Registry::in_worker_cold::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6340f1bdf1d26b2b gecko/third_party/rust/rayon-core/src/registry.rs:469:21 (libxul.so+0x7a09829) #28 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::call::_$u7b$$u7b$closure$u7d$$u7d$::hd3fefb1fa62f23f2 gecko/third_party/rust/rayon-core/src/job.rs:113:21 (libxul.so+0x7a09829) #29 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h1eaafaf676aafbc4 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7a09829) #30 std::panicking::try::do_call::h4d0078a4404538d2 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7a09829) #31 std::panicking::try::h73495634cdd07c36 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7a09829) #32 std::panic::catch_unwind::h76540899313c3a96 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7a09829) #33 rayon_core::unwind::halt_unwinding::h3dcc7f6ebf38c07f gecko/third_party/rust/rayon-core/src/unwind.rs:17:5 (libxul.so+0x7a09829) #34 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::hd45eaed58ee9163b gecko/third_party/rust/rayon-core/src/job.rs:119:38 (libxul.so+0x7a09829) #35 rayon_core::job::JobRef::execute::h56853cba23978f09 gecko/third_party/rust/rayon-core/src/job.rs:59:9 (libxul.so+0x7ec3552) #36 rayon_core::registry::WorkerThread::execute::he5c2544d657e6948 gecko/third_party/rust/rayon-core/src/registry.rs:753:9 (libxul.so+0x7ec3552) #37 rayon_core::registry::WorkerThread::wait_until_cold::hbe258d25c64c48f5 gecko/third_party/rust/rayon-core/src/registry.rs:730:17 (libxul.so+0x7ec3552) #38 rayon_core::registry::WorkerThread::wait_until::hb4abdecec6e64f2c gecko/third_party/rust/rayon-core/src/registry.rs:704:13 (libxul.so+0x7ec76a5) #39 rayon_core::registry::main_loop::h8915ba197fff28f4 gecko/third_party/rust/rayon-core/src/registry.rs:837:5 (libxul.so+0x7ec76a5) #40 rayon_core::registry::ThreadBuilder::run::hb658baf32f1c0edf gecko/third_party/rust/rayon-core/src/registry.rs:56:18 (libxul.so+0x7ec76a5) #41 _$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$::spawn::_$u7b$$u7b$closure$u7d$$u7d$::ha6fa00eac0719f1d gecko/third_party/rust/rayon-core/src/registry.rs:101:20 (libxul.so+0x7ec76a5) #42 std::sys_common::backtrace::__rust_begin_short_backtrace::he530ba71b240257e rustc/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125:18 (libxul.so+0x7ec76a5) #43 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #44 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #45 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #46 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #47 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #48 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #49 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #50 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h25652d185052d985 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:474:17 (libxul.so+0x7ec67cf) #51 _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h3005d32088e8948f rustc/lib/rustlib/src/rust/library/std/src/panic.rs:322:9 (libxul.so+0x7ec67cf) #52 std::panicking::try::do_call::hf122fdc0c463f4a7 rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:381:40 (libxul.so+0x7ec67cf) #53 std::panicking::try::h190a8dc2b4dd875f rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:345:19 (libxul.so+0x7ec67cf) #54 std::panic::catch_unwind::h6a9f16c964c040a3 rustc/lib/rustlib/src/rust/library/std/src/panic.rs:396:14 (libxul.so+0x7ec67cf) #55 std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h11ce72254f299844 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:473:30 (libxul.so+0x7ec67cf) #56 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7ed13689b2b6929d rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x7ec67cf) #57 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::hb4d0520786147807 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #58 _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h7b3e75c823aaab91 rustc/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1307:9 (libxul.so+0x7ff8de6) #59 std::sys::unix::thread::Thread::new::thread_start::h4b687605f586dc2f rustc/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:71:17 (libxul.so+0x7ff8de6) Thread T21 'StyleThread#1' (tid=3423, running) created by main thread at: #0 pthread_create llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (firefox+0x5668b) #1 std::sys::unix::thread::Thread::new::he0fcb8382fb479a0 rustc/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:50:19 (libxul.so+0x7ff89b5) #2 std::thread::Builder::spawn_unchecked::ha601f745baa9c56b rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:498:22 (libxul.so+0x7ec61d7) #3 std::thread::Builder::spawn::h3ad6817dae0d71a6 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:381:18 (libxul.so+0x7ec61d7) #4 _$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$::spawn::h72e927ef12ab1721 gecko/third_party/rust/rayon-core/src/registry.rs:101:9 (libxul.so+0x7ec61d7) #5 rayon_core::registry::Registry::new::hab306d15e6200bd3 gecko/third_party/rust/rayon-core/src/registry.rs:260:29 (libxul.so+0x8128ac7) #6 rayon_core::thread_pool::ThreadPool::build::h88161ce417c8eefc gecko/third_party/rust/rayon-core/src/thread_pool/mod.rs:69:24 (libxul.so+0x8128ac7) #7 rayon_core::ThreadPoolBuilder$LT$S$GT$::build::hc3d42f131963fd06 gecko/third_party/rust/rayon-core/src/lib.rs:202:9 (libxul.so+0x8128ac7) #8 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::__static_ref_initialize::h32b79a21486e8dfa gecko/servo/components/style/global_style_data.rs:152:27 (libxul.so+0x8128ac7) #9 core::ops::function::FnOnce::call_once::hfd8aa1e889f89652 rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x8128ac7) #10 lazy_static::lazy::Lazy$LT$T$GT$::get::_$u7b$$u7b$closure$u7d$$u7d$::hdf1331e0df157689 gecko/third_party/rust/lazy_static/src/inline_lazy.rs:31:29 (libxul.so+0x8128ac7) #11 std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::hd1ffaec532db8c01 rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:261:41 (libxul.so+0x8128ac7) #12 std::sync::once::Once::call_inner::h9118e984e86aa9c3 rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:419:21 (libxul.so+0x7fec822) #13 std::sync::once::Once::call_once::h84a0686d71a1c72b rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:261:9 (libxul.so+0x832bc7d) #14 lazy_static::lazy::Lazy$LT$T$GT$::get::h8bfa7001399b788c gecko/third_party/rust/lazy_static/src/inline_lazy.rs:30:9 (libxul.so+0x832bc7d) #15 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::__stability::hb0a2673a21e52338 gecko/third_party/rust/lazy_static/src/lib.rs:142:21 (libxul.so+0x832bc7d) #16 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::h578b0ca9aa209ca2 gecko/third_party/rust/lazy_static/src/lib.rs:144:17 (libxul.so+0x832bc7d) #17 geckoservo::glue::traverse_subtree::hca578a3e4bac8c3b gecko/servo/ports/geckolib/glue.rs:255:31 (libxul.so+0x79ecdfc) #18 Servo_TraverseSubtree gecko/servo/ports/geckolib/glue.rs:325:5 (libxul.so+0x79ec8c5) #19 mozilla::ServoStyleSet::StyleNewSubtree(mozilla::dom::Element*) gecko/layout/style/ServoStyleSet.cpp:806:7 (libxul.so+0x4d3536d) #20 nsCSSFrameConstructor::ConstructDocElementFrame(mozilla::dom::Element*) gecko/layout/base/nsCSSFrameConstructor.cpp:2166:29 (libxul.so+0x4e1c549) #21 nsCSSFrameConstructor::ContentRangeInserted(nsIContent*, nsIContent*, nsCSSFrameConstructor::InsertionKind) gecko/layout/base/nsCSSFrameConstructor.cpp:6899:9 (libxul.so+0x4e2d5dc) #22 nsCSSFrameConstructor::ContentInserted(nsIContent*, nsCSSFrameConstructor::InsertionKind) gecko/layout/base/nsCSSFrameConstructor.cpp:6817:3 (libxul.so+0x4e2d1c1) #23 mozilla::PresShell::Initialize() gecko/layout/base/PresShell.cpp:1893:26 (libxul.so+0x4dcc6f9) #24 nsContentSink::StartLayout(bool) gecko/dom/base/nsContentSink.cpp:1140:30 (libxul.so+0x25dd676) #25 HTMLContentSink::OpenBody() gecko/dom/html/nsHTMLContentSink.cpp:776:3 (libxul.so+0x3ace7b3) #26 HTMLContentSink::OpenContainer(nsIHTMLContentSink::ElementType) gecko/dom/html/nsHTMLContentSink.cpp:795:12 (libxul.so+0x3ace804) #27 non-virtual thunk to HTMLContentSink::OpenContainer(nsIHTMLContentSink::ElementType) gecko/dom/html/nsHTMLContentSink.cpp (libxul.so+0x3ace9a5) #28 CNavDTD::BuildModel(nsITokenizer*, nsIContentSink*) gecko/parser/htmlparser/CNavDTD.cpp:36:14 (libxul.so+0x1bb5cdd) #29 BuildModel gecko/parser/htmlparser/nsParser.cpp:1058:22 (libxul.so+0x1bbe381) #30 nsParser::ResumeParse(bool, bool, bool) gecko/parser/htmlparser/nsParser.cpp:963:18 (libxul.so+0x1bbe381) #31 OnStopRequest gecko/parser/htmlparser/nsParser.cpp:1352:10 (libxul.so+0x1bc0cd0) #32 non-virtual thunk to nsParser::OnStopRequest(nsIRequest*, nsresult) gecko/parser/htmlparser/nsParser.cpp (libxul.so+0x1bc0cd0) #33 nsDocumentOpenInfo::OnStopRequest(nsIRequest*, nsresult) gecko/uriloader/base/nsURILoader.cpp:215:15 (libxul.so+0x1b39f24) #34 nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) gecko/netwerk/base/nsBaseChannel.cpp:853:16 (libxul.so+0xcc3e38) #35 non-virtual thunk to nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) gecko/netwerk/base/nsBaseChannel.cpp (libxul.so+0xcc3fb5) #36 nsInputStreamPump::OnStateStop() gecko/netwerk/base/nsInputStreamPump.cpp:649:16 (libxul.so+0xceadc3) #37 nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) gecko/netwerk/base/nsInputStreamPump.cpp:397:21 (libxul.so+0xce9f12) #38 non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) gecko/netwerk/base/nsInputStreamPump.cpp (libxul.so+0xceb049) #39 RunAsyncWaitCallback gecko/xpcom/io/NonBlockingAsyncInputStream.cpp:397:13 (libxul.so+0xb18bbc) #40 mozilla::NonBlockingAsyncInputStream::AsyncWaitRunnable::Run() gecko/xpcom/io/NonBlockingAsyncInputStream.cpp:33:14 (libxul.so+0xb18bbc) #41 mozilla::RunnableTask::Run() gecko/xpcom/threads/TaskController.cpp:459:16 (libxul.so+0xb78272) #42 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock const&) gecko/xpcom/threads/TaskController.cpp:739:26 (libxul.so+0xb761b0) #43 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock const&) gecko/xpcom/threads/TaskController.cpp:598:15 (libxul.so+0xb74e16) #44 mozilla::TaskController::ProcessPendingMTTask(bool) gecko/xpcom/threads/TaskController.cpp:382:36 (libxul.so+0xb750b4) #45 operator() gecko/xpcom/threads/TaskController.cpp:123:37 (libxul.so+0xb7b267) #46 mozilla::detail::RunnableFunction::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:534:5 (libxul.so+0xb7b267) #47 nsThread::ProcessNextEvent(bool, bool*) gecko/xpcom/threads/nsThread.cpp:1200:14 (libxul.so+0xb8c2aa) #48 NS_ProcessNextEvent(nsIThread*, bool) gecko/xpcom/threads/nsThreadUtils.cpp:548:10 (libxul.so+0xb91fe2) #49 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x148dfad) #50 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x148ea4b) #51 RunInternal gecko/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x141941c) #52 RunHandler gecko/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x141941c) #53 MessageLoop::Run() gecko/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x141941c) #54 nsBaseAppShell::Run() gecko/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x4adc1d6) #55 XRE_RunAppShell() gecko/toolkit/xre/nsEmbedFunctions.cpp:902:20 (libxul.so+0x6741669) #56 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x148e9fd) #57 RunInternal gecko/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x141941c) #58 RunHandler gecko/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x141941c) #59 MessageLoop::Run() gecko/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x141941c) #60 XRE_InitChildProcess(int, char**, XREChildData const*) gecko/toolkit/xre/nsEmbedFunctions.cpp:733:34 (libxul.so+0x67413ea) #61 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x6749082) #62 content_process_main gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox+0xc7901) #63 main gecko/browser/app/nsBrowserApp.cpp:305:18 (firefox+0xc7901) Thread T20 'StyleThread#0' (tid=3422, running) created by main thread at: #0 pthread_create llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:966:3 (firefox+0x5668b) #1 std::sys::unix::thread::Thread::new::he0fcb8382fb479a0 rustc/lib/rustlib/src/rust/library/std/src/sys/unix/thread.rs:50:19 (libxul.so+0x7ff89b5) #2 std::thread::Builder::spawn_unchecked::ha601f745baa9c56b rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:498:22 (libxul.so+0x7ec61d7) #3 std::thread::Builder::spawn::h3ad6817dae0d71a6 rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:381:18 (libxul.so+0x7ec61d7) #4 _$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$::spawn::h72e927ef12ab1721 gecko/third_party/rust/rayon-core/src/registry.rs:101:9 (libxul.so+0x7ec61d7) #5 rayon_core::registry::Registry::new::hab306d15e6200bd3 gecko/third_party/rust/rayon-core/src/registry.rs:260:29 (libxul.so+0x8128ac7) #6 rayon_core::thread_pool::ThreadPool::build::h88161ce417c8eefc gecko/third_party/rust/rayon-core/src/thread_pool/mod.rs:69:24 (libxul.so+0x8128ac7) #7 rayon_core::ThreadPoolBuilder$LT$S$GT$::build::hc3d42f131963fd06 gecko/third_party/rust/rayon-core/src/lib.rs:202:9 (libxul.so+0x8128ac7) #8 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::__static_ref_initialize::h32b79a21486e8dfa gecko/servo/components/style/global_style_data.rs:152:27 (libxul.so+0x8128ac7) #9 core::ops::function::FnOnce::call_once::hfd8aa1e889f89652 rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5 (libxul.so+0x8128ac7) #10 lazy_static::lazy::Lazy$LT$T$GT$::get::_$u7b$$u7b$closure$u7d$$u7d$::hdf1331e0df157689 gecko/third_party/rust/lazy_static/src/inline_lazy.rs:31:29 (libxul.so+0x8128ac7) #11 std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::hd1ffaec532db8c01 rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:261:41 (libxul.so+0x8128ac7) #12 std::sync::once::Once::call_inner::h9118e984e86aa9c3 rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:419:21 (libxul.so+0x7fec822) #13 std::sync::once::Once::call_once::h84a0686d71a1c72b rustc/lib/rustlib/src/rust/library/std/src/sync/once.rs:261:9 (libxul.so+0x832bc7d) #14 lazy_static::lazy::Lazy$LT$T$GT$::get::h8bfa7001399b788c gecko/third_party/rust/lazy_static/src/inline_lazy.rs:30:9 (libxul.so+0x832bc7d) #15 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::__stability::hb0a2673a21e52338 gecko/third_party/rust/lazy_static/src/lib.rs:142:21 (libxul.so+0x832bc7d) #16 _$LT$style..global_style_data..STYLE_THREAD_POOL$u20$as$u20$core..ops..deref..Deref$GT$::deref::h578b0ca9aa209ca2 gecko/third_party/rust/lazy_static/src/lib.rs:144:17 (libxul.so+0x832bc7d) #17 geckoservo::glue::traverse_subtree::hca578a3e4bac8c3b gecko/servo/ports/geckolib/glue.rs:255:31 (libxul.so+0x79ecdfc) #18 Servo_TraverseSubtree gecko/servo/ports/geckolib/glue.rs:325:5 (libxul.so+0x79ec8c5) #19 mozilla::ServoStyleSet::StyleNewSubtree(mozilla::dom::Element*) gecko/layout/style/ServoStyleSet.cpp:806:7 (libxul.so+0x4d3536d) #20 nsCSSFrameConstructor::ConstructDocElementFrame(mozilla::dom::Element*) gecko/layout/base/nsCSSFrameConstructor.cpp:2166:29 (libxul.so+0x4e1c549) #21 nsCSSFrameConstructor::ContentRangeInserted(nsIContent*, nsIContent*, nsCSSFrameConstructor::InsertionKind) gecko/layout/base/nsCSSFrameConstructor.cpp:6899:9 (libxul.so+0x4e2d5dc) #22 nsCSSFrameConstructor::ContentInserted(nsIContent*, nsCSSFrameConstructor::InsertionKind) gecko/layout/base/nsCSSFrameConstructor.cpp:6817:3 (libxul.so+0x4e2d1c1) #23 mozilla::PresShell::Initialize() gecko/layout/base/PresShell.cpp:1893:26 (libxul.so+0x4dcc6f9) #24 nsContentSink::StartLayout(bool) gecko/dom/base/nsContentSink.cpp:1140:30 (libxul.so+0x25dd676) #25 HTMLContentSink::OpenBody() gecko/dom/html/nsHTMLContentSink.cpp:776:3 (libxul.so+0x3ace7b3) #26 HTMLContentSink::OpenContainer(nsIHTMLContentSink::ElementType) gecko/dom/html/nsHTMLContentSink.cpp:795:12 (libxul.so+0x3ace804) #27 non-virtual thunk to HTMLContentSink::OpenContainer(nsIHTMLContentSink::ElementType) gecko/dom/html/nsHTMLContentSink.cpp (libxul.so+0x3ace9a5) #28 CNavDTD::BuildModel(nsITokenizer*, nsIContentSink*) gecko/parser/htmlparser/CNavDTD.cpp:36:14 (libxul.so+0x1bb5cdd) #29 BuildModel gecko/parser/htmlparser/nsParser.cpp:1058:22 (libxul.so+0x1bbe381) #30 nsParser::ResumeParse(bool, bool, bool) gecko/parser/htmlparser/nsParser.cpp:963:18 (libxul.so+0x1bbe381) #31 OnStopRequest gecko/parser/htmlparser/nsParser.cpp:1352:10 (libxul.so+0x1bc0cd0) #32 non-virtual thunk to nsParser::OnStopRequest(nsIRequest*, nsresult) gecko/parser/htmlparser/nsParser.cpp (libxul.so+0x1bc0cd0) #33 nsDocumentOpenInfo::OnStopRequest(nsIRequest*, nsresult) gecko/uriloader/base/nsURILoader.cpp:215:15 (libxul.so+0x1b39f24) #34 nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) gecko/netwerk/base/nsBaseChannel.cpp:853:16 (libxul.so+0xcc3e38) #35 non-virtual thunk to nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) gecko/netwerk/base/nsBaseChannel.cpp (libxul.so+0xcc3fb5) #36 nsInputStreamPump::OnStateStop() gecko/netwerk/base/nsInputStreamPump.cpp:649:16 (libxul.so+0xceadc3) #37 nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) gecko/netwerk/base/nsInputStreamPump.cpp:397:21 (libxul.so+0xce9f12) #38 non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) gecko/netwerk/base/nsInputStreamPump.cpp (libxul.so+0xceb049) #39 RunAsyncWaitCallback gecko/xpcom/io/NonBlockingAsyncInputStream.cpp:397:13 (libxul.so+0xb18bbc) #40 mozilla::NonBlockingAsyncInputStream::AsyncWaitRunnable::Run() gecko/xpcom/io/NonBlockingAsyncInputStream.cpp:33:14 (libxul.so+0xb18bbc) #41 mozilla::RunnableTask::Run() gecko/xpcom/threads/TaskController.cpp:459:16 (libxul.so+0xb78272) #42 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock const&) gecko/xpcom/threads/TaskController.cpp:739:26 (libxul.so+0xb761b0) #43 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock const&) gecko/xpcom/threads/TaskController.cpp:598:15 (libxul.so+0xb74e16) #44 mozilla::TaskController::ProcessPendingMTTask(bool) gecko/xpcom/threads/TaskController.cpp:382:36 (libxul.so+0xb750b4) #45 operator() gecko/xpcom/threads/TaskController.cpp:123:37 (libxul.so+0xb7b267) #46 mozilla::detail::RunnableFunction::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:534:5 (libxul.so+0xb7b267) #47 nsThread::ProcessNextEvent(bool, bool*) gecko/xpcom/threads/nsThread.cpp:1200:14 (libxul.so+0xb8c2aa) #48 NS_ProcessNextEvent(nsIThread*, bool) gecko/xpcom/threads/nsThreadUtils.cpp:548:10 (libxul.so+0xb91fe2) #49 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x148dfad) #50 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x148ea4b) #51 RunInternal gecko/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x141941c) #52 RunHandler gecko/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x141941c) #53 MessageLoop::Run() gecko/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x141941c) #54 nsBaseAppShell::Run() gecko/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x4adc1d6) #55 XRE_RunAppShell() gecko/toolkit/xre/nsEmbedFunctions.cpp:902:20 (libxul.so+0x6741669) #56 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) gecko/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x148e9fd) #57 RunInternal gecko/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x141941c) #58 RunHandler gecko/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x141941c) #59 MessageLoop::Run() gecko/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x141941c) #60 XRE_InitChildProcess(int, char**, XREChildData const*) gecko/toolkit/xre/nsEmbedFunctions.cpp:733:34 (libxul.so+0x67413ea) #61 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x6749082) #62 content_process_main gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox+0xc7901) #63 main gecko/browser/app/nsBrowserApp.cpp:305:18 (firefox+0xc7901) SUMMARY: ThreadSanitizer: data race rustc/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1052:14 in core::ptr::read_volatile::h6791bf575cf2c252 ================== ```
taiki-e commented 3 years ago

This is a duplicate of #589