Found this while trying to run the webrtc mochitests on TSan. Maybe related to bug 1599922, or maybe bug 1610263? 2:05.50 GECKO(2870758) ================== 2:05.50 GECKO(2870758) WARNING: ThreadSanitizer: data race (pid=2870876) 2:05.50 GECKO(2870758) Write of size 8 at 0x7b4800127d70 by thread T54: 2:05.50 GECKO(2870758) #0 free /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:706:3 (firefox+0x9e898) 2:05.50 GECKO(2870758) #1 operator delete /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:51:10 (libxul.so+0x93d00b1) 2:05.50 GECKO(2870758) #2 mozilla::AudioCallbackDriver::~AudioCallbackDriver() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:537:45 (libxul.so+0x93d00b1) 2:05.50 GECKO(2870758) #3 mozilla::AudioCallbackDriver::Release() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.h:560:3 (libxul.so+0x93e57cd) 2:05.50 GECKO(2870758) #4 Release /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:50:40 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #5 Release /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:381:36 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #6 assign_assuming_AddRef /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:69:7 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #7 operator= /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:168:5 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #8 mozilla::AsyncCubebTask::Run() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:316:15 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #9 nsThreadPool::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:299:14 (libxul.so+0x5c5b01e) 2:05.50 GECKO(2870758) #10 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050) 2:05.50 GECKO(2870758) #11 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.50 GECKO(2870758) #12 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:302:20 (libxul.so+0x6749f5e) 2:05.50 GECKO(2870758) #13 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #14 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #15 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #16 nsThread::ThreadFunc(void*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:447:10 (libxul.so+0x5c4fcc8) 2:05.50 GECKO(2870758) #17 _pt_root /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x50be0) 2:05.50 GECKO(2870758) Previous atomic write of size 4 at 0x7b4800127d70 by thread T34: 2:05.50 GECKO(2870758) #0 __tsan_atomic32_exchange /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:588:3 (firefox+0xeb0b9) 2:05.50 GECKO(2870758) #1 exchange /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/atomic:272:2 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #2 exchange /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Atomics.h:199:17 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #3 exchange /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Atomics.h:305:31 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #4 StateCallback /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:1068:52 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #5 mozilla::AudioCallbackDriver::StateCallback_s(cubeb_stream*, void*, cubeb_state) /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:838:11 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #6 audioipc_client::run_in_callback::hdf52d8e263853b9c /home/bcampen/checkouts/mozilla-central/media/audioipc/client/src/lib.rs:54:12 (libxul.so+0xed0742d) 2:05.50 GECKO(2870758) Thread T54 'CubebOp~tion #1' (tid=2871387, running) created by main thread at: 2:05.50 GECKO(2870758) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b) 2:05.50 GECKO(2870758) #1 _PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x47831) 2:05.50 GECKO(2870758) #2 PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3be67) 2:05.50 GECKO(2870758) #3 nsThread::Init(nsTSubstring<char> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:659:8 (libxul.so+0x5c51596) 2:05.50 GECKO(2870758) #4 nsThreadManager::NewNamedThread(nsTSubstring<char> const&, unsigned int, nsIThread**) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadManager.cpp:623:12 (libxul.so+0x5c5831e) 2:05.50 GECKO(2870758) #5 NS_NewNamedThread(nsTSubstring<char> const&, nsIThread**, already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:160:57 (libxul.so+0x5c5e9b7) 2:05.50 GECKO(2870758) #6 NS_NewNamedThread /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:151:10 (libxul.so+0x5c5a57e) 2:05.50 GECKO(2870758) #7 nsThreadPool::PutEvent(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:115:17 (libxul.so+0x5c5a57e) 2:05.50 GECKO(2870758) #8 nsThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:350:5 (libxul.so+0x5c5b902) 2:05.50 GECKO(2870758) #9 non-virtual thunk to nsThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp (libxul.so+0x5c5bdad) 2:05.50 GECKO(2870758) #10 mozilla::SharedThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/SharedThreadPool.h:70:42 (libxul.so+0x5c3f3f4) 2:05.50 GECKO(2870758) #11 Dispatch /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsIEventTarget.h:38:14 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #12 Dispatch /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.h:803:42 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #13 mozilla::AudioCallbackDriver::Start() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:765:14 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #14 mozilla::MediaTrackGraphImpl::RunInStableState(bool) /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:1764:15 (libxul.so+0x953aa22) 2:05.50 GECKO(2870758) #15 mozilla::(anonymous namespace)::MediaTrackGraphStableStateRunnable::Run() /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:1647:15 (libxul.so+0x9548b5d) 2:05.50 GECKO(2870758) #16 mozilla::CycleCollectedJSContext::ProcessStableStateQueue() /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:400:12 (libxul.so+0x5b377f3) 2:05.50 GECKO(2870758) #17 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:462:3 (libxul.so+0x5b39309) 2:05.50 GECKO(2870758) #18 XPCJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1363:28 (libxul.so+0x6e4e7ff) 2:05.50 GECKO(2870758) #19 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1269:24 (libxul.so+0x5c54423) 2:05.50 GECKO(2870758) #20 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.50 GECKO(2870758) #21 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a) 2:05.50 GECKO(2870758) #22 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b) 2:05.50 GECKO(2870758) #23 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #24 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #25 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #26 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955) 2:05.50 GECKO(2870758) #27 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699) 2:05.51 GECKO(2870758) #28 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d) 2:05.51 GECKO(2870758) #29 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #30 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #31 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #32 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49) 2:05.51 GECKO(2870758) #33 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17) 2:05.51 GECKO(2870758) #34 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a) 2:05.51 GECKO(2870758) #35 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a) 2:05.51 GECKO(2870758) Thread T34 'AudioIPC0' (tid=2871101, running) created by main thread at: 2:05.51 GECKO(2870758) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b) 2:05.51 GECKO(2870758) #1 std::sys::unix::thread::Thread::new::h6d6372b6bc98aed3 /rustc/f3e1a954d2ead4e2fc197c7da7d71e6c61bad196/src/libstd/sys/unix/thread.rs:68:18 (libxul.so+0xf714acd) 2:05.51 GECKO(2870758) #2 mozilla::CubebUtils::InitPreferredSampleRate() /home/bcampen/checkouts/mozilla-central/dom/media/CubebUtils.cpp:337:20 (libxul.so+0x932f5cf) 2:05.51 GECKO(2870758) #3 mozilla::CubebUtils::PreferredSampleRate() /home/bcampen/checkouts/mozilla-central/dom/media/CubebUtils.cpp:357:8 (libxul.so+0x932f6c6) 2:05.51 GECKO(2870758) #4 mozilla::MediaTrackGraph::GetInstance(mozilla::MediaTrackGraph::GraphDriverType, nsPIDOMWindowInner*, int, void const*) /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:3094:35 (libxul.so+0x954234f) 2:05.51 GECKO(2870758) #5 mozilla::GetUserMediaStreamRunnable::Run() /home/bcampen/checkouts/mozilla-central/dom/media/MediaManager.cpp:1199:28 (libxul.so+0x950cc91) 2:05.51 GECKO(2870758) #6 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050) 2:05.51 GECKO(2870758) #7 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.51 GECKO(2870758) #8 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a) 2:05.51 GECKO(2870758) #9 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b) 2:05.51 GECKO(2870758) #10 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #11 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #12 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #13 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955) 2:05.51 GECKO(2870758) #14 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699) 2:05.51 GECKO(2870758) #15 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d) 2:05.51 GECKO(2870758) #16 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #17 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #18 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #19 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49) 2:05.51 GECKO(2870758) #20 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17) 2:05.51 GECKO(2870758) #21 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a) 2:05.51 GECKO(2870758) #22 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a) 2:05.51 GECKO(2870758) SUMMARY: ThreadSanitizer: data race /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:51:10 in operator delete 2:05.51 GECKO(2870758) ================== Marking this a sec-bug because mozilla::AudioCallbackDriver::StateCallback_s seems to be racing with the d'tor somehow.
Bug 1648612 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Found this while trying to run the webrtc mochitests on TSan. Maybe related to bug 1599922, or maybe bug 1610263? 2:05.50 GECKO(2870758) ================== 2:05.50 GECKO(2870758) WARNING: ThreadSanitizer: data race (pid=2870876) 2:05.50 GECKO(2870758) Write of size 8 at 0x7b4800127d70 by thread T54: 2:05.50 GECKO(2870758) #0 free /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:706:3 (firefox+0x9e898) 2:05.50 GECKO(2870758) #1 operator delete /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:51:10 (libxul.so+0x93d00b1) 2:05.50 GECKO(2870758) #2 mozilla::AudioCallbackDriver::\~AudioCallbackDriver() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:537:45 (libxul.so+0x93d00b1) 2:05.50 GECKO(2870758) #3 mozilla::AudioCallbackDriver::Release() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.h:560:3 (libxul.so+0x93e57cd) 2:05.50 GECKO(2870758) #4 Release /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:50:40 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #5 Release /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:381:36 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #6 assign_assuming_AddRef /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:69:7 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #7 operator= /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/RefPtr.h:168:5 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #8 mozilla::AsyncCubebTask::Run() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:316:15 (libxul.so+0x93ce654) 2:05.50 GECKO(2870758) #9 nsThreadPool::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:299:14 (libxul.so+0x5c5b01e) 2:05.50 GECKO(2870758) #10 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050) 2:05.50 GECKO(2870758) #11 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.50 GECKO(2870758) #12 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:302:20 (libxul.so+0x6749f5e) 2:05.50 GECKO(2870758) #13 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #14 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #15 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #16 nsThread::ThreadFunc(void*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:447:10 (libxul.so+0x5c4fcc8) 2:05.50 GECKO(2870758) #17 _pt_root /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x50be0) 2:05.50 GECKO(2870758) Previous atomic write of size 4 at 0x7b4800127d70 by thread T34: 2:05.50 GECKO(2870758) #0 __tsan_atomic32_exchange /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:588:3 (firefox+0xeb0b9) 2:05.50 GECKO(2870758) #1 exchange /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/atomic:272:2 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #2 exchange /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Atomics.h:199:17 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #3 exchange /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Atomics.h:305:31 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #4 StateCallback /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:1068:52 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #5 mozilla::AudioCallbackDriver::StateCallback_s(cubeb_stream*, void*, cubeb_state) /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:838:11 (libxul.so+0x93d041c) 2:05.50 GECKO(2870758) #6 audioipc_client::run_in_callback::hdf52d8e263853b9c /home/bcampen/checkouts/mozilla-central/media/audioipc/client/src/lib.rs:54:12 (libxul.so+0xed0742d) 2:05.50 GECKO(2870758) Thread T54 'CubebOp~tion #1' (tid=2871387, running) created by main thread at: 2:05.50 GECKO(2870758) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b) 2:05.50 GECKO(2870758) #1 _PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x47831) 2:05.50 GECKO(2870758) #2 PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3be67) 2:05.50 GECKO(2870758) #3 nsThread::Init(nsTSubstring<char> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:659:8 (libxul.so+0x5c51596) 2:05.50 GECKO(2870758) #4 nsThreadManager::NewNamedThread(nsTSubstring<char> const&, unsigned int, nsIThread**) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadManager.cpp:623:12 (libxul.so+0x5c5831e) 2:05.50 GECKO(2870758) #5 NS_NewNamedThread(nsTSubstring<char> const&, nsIThread**, already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:160:57 (libxul.so+0x5c5e9b7) 2:05.50 GECKO(2870758) #6 NS_NewNamedThread /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:151:10 (libxul.so+0x5c5a57e) 2:05.50 GECKO(2870758) #7 nsThreadPool::PutEvent(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:115:17 (libxul.so+0x5c5a57e) 2:05.50 GECKO(2870758) #8 nsThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp:350:5 (libxul.so+0x5c5b902) 2:05.50 GECKO(2870758) #9 non-virtual thunk to nsThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadPool.cpp (libxul.so+0x5c5bdad) 2:05.50 GECKO(2870758) #10 mozilla::SharedThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/SharedThreadPool.h:70:42 (libxul.so+0x5c3f3f4) 2:05.50 GECKO(2870758) #11 Dispatch /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsIEventTarget.h:38:14 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #12 Dispatch /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.h:803:42 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #13 mozilla::AudioCallbackDriver::Start() /home/bcampen/checkouts/mozilla-central/dom/media/GraphDriver.cpp:765:14 (libxul.so+0x93d0b23) 2:05.50 GECKO(2870758) #14 mozilla::MediaTrackGraphImpl::RunInStableState(bool) /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:1764:15 (libxul.so+0x953aa22) 2:05.50 GECKO(2870758) #15 mozilla::(anonymous namespace)::MediaTrackGraphStableStateRunnable::Run() /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:1647:15 (libxul.so+0x9548b5d) 2:05.50 GECKO(2870758) #16 mozilla::CycleCollectedJSContext::ProcessStableStateQueue() /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:400:12 (libxul.so+0x5b377f3) 2:05.50 GECKO(2870758) #17 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:462:3 (libxul.so+0x5b39309) 2:05.50 GECKO(2870758) #18 XPCJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1363:28 (libxul.so+0x6e4e7ff) 2:05.50 GECKO(2870758) #19 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1269:24 (libxul.so+0x5c54423) 2:05.50 GECKO(2870758) #20 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.50 GECKO(2870758) #21 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a) 2:05.50 GECKO(2870758) #22 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b) 2:05.50 GECKO(2870758) #23 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #24 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #25 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.50 GECKO(2870758) #26 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955) 2:05.50 GECKO(2870758) #27 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699) 2:05.51 GECKO(2870758) #28 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d) 2:05.51 GECKO(2870758) #29 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #30 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #31 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #32 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49) 2:05.51 GECKO(2870758) #33 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17) 2:05.51 GECKO(2870758) #34 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a) 2:05.51 GECKO(2870758) #35 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a) 2:05.51 GECKO(2870758) Thread T34 'AudioIPC0' (tid=2871101, running) created by main thread at: 2:05.51 GECKO(2870758) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b) 2:05.51 GECKO(2870758) #1 std::sys::unix::thread::Thread::new::h6d6372b6bc98aed3 /rustc/f3e1a954d2ead4e2fc197c7da7d71e6c61bad196/src/libstd/sys/unix/thread.rs:68:18 (libxul.so+0xf714acd) 2:05.51 GECKO(2870758) #2 mozilla::CubebUtils::InitPreferredSampleRate() /home/bcampen/checkouts/mozilla-central/dom/media/CubebUtils.cpp:337:20 (libxul.so+0x932f5cf) 2:05.51 GECKO(2870758) #3 mozilla::CubebUtils::PreferredSampleRate() /home/bcampen/checkouts/mozilla-central/dom/media/CubebUtils.cpp:357:8 (libxul.so+0x932f6c6) 2:05.51 GECKO(2870758) #4 mozilla::MediaTrackGraph::GetInstance(mozilla::MediaTrackGraph::GraphDriverType, nsPIDOMWindowInner*, int, void const*) /home/bcampen/checkouts/mozilla-central/dom/media/MediaTrackGraph.cpp:3094:35 (libxul.so+0x954234f) 2:05.51 GECKO(2870758) #5 mozilla::GetUserMediaStreamRunnable::Run() /home/bcampen/checkouts/mozilla-central/dom/media/MediaManager.cpp:1199:28 (libxul.so+0x950cc91) 2:05.51 GECKO(2870758) #6 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050) 2:05.51 GECKO(2870758) #7 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05) 2:05.51 GECKO(2870758) #8 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a) 2:05.51 GECKO(2870758) #9 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b) 2:05.51 GECKO(2870758) #10 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #11 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #12 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #13 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955) 2:05.51 GECKO(2870758) #14 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699) 2:05.51 GECKO(2870758) #15 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d) 2:05.51 GECKO(2870758) #16 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #17 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #18 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c) 2:05.51 GECKO(2870758) #19 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49) 2:05.51 GECKO(2870758) #20 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17) 2:05.51 GECKO(2870758) #21 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a) 2:05.51 GECKO(2870758) #22 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a) 2:05.51 GECKO(2870758) SUMMARY: ThreadSanitizer: data race /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:51:10 in operator delete 2:05.51 GECKO(2870758) ================== Marking this a sec-bug because mozilla::AudioCallbackDriver::StateCallback_s seems to be racing with the d'tor somehow.