ThreadSanitizer: data race [@ mozilla::dom::quota::RemoteQuotaObject::ClearActor] vs. [@ mozilla::dom::quota::RemoteQuotaObject::Close]
Categories
(Core :: DOM: File, defect, P2)
Tracking
()
People
(Reporter: tsmith, Assigned: janv)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: csectype-race, regression, sec-high, Whiteboard: [fuzzblocker][adv-main120+r][adv-esr115.5+r])
Attachments
(9 files)
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
diannaS
:
approval-mozilla-esr115+
|
Details | Review |
Found while fuzzing m-c 20230922-efa8aa7a4f54 (--enable-thread-sanitizer --enable-fuzzing)
The nature of this issue makes it difficult reproduce reliably and therefore reduce. I will attach a Pernosco session shortly.
This issue is frequently reported by fuzzer, marking as fuzzblocker.
WARNING: ThreadSanitizer: data race (pid=90209)
Read of size 8 at 0x7b0c00047240 by thread T24:
#0 operator! /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:350:36 (libxul.so+0x71c9316) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#1 mozilla::dom::quota::RemoteQuotaObject::Close() /builds/worker/checkouts/gecko/dom/quota/RemoteQuotaObject.cpp:34:7 (libxul.so+0x71c9316)
#2 Close /builds/worker/checkouts/gecko/dom/quota/FileStreams.cpp:51:26 (libxul.so+0x7184953) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#3 mozilla::dom::quota::FileRandomAccessStream::~FileRandomAccessStream() /builds/worker/checkouts/gecko/dom/quota/FileStreams.h:152:39 (libxul.so+0x7184953)
#4 mozilla::dom::quota::FileRandomAccessStream::~FileRandomAccessStream() /builds/worker/checkouts/gecko/dom/quota/FileStreams.h:152:37 (libxul.so+0x71849e5) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#5 Release /builds/worker/checkouts/gecko/netwerk/base/nsFileStreams.cpp:55:1 (libxul.so+0x35ad3a3) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#6 nsFileRandomAccessStream::Release() /builds/worker/checkouts/gecko/netwerk/base/nsFileStreams.cpp:923:1 (libxul.so+0x35ad3a3)
#7 Release /builds/worker/checkouts/gecko/dom/quota/FileStreams.h:127:3 (libxul.so+0x7184f39) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#8 non-virtual thunk to mozilla::dom::quota::FileRandomAccessStream::Release() /builds/worker/checkouts/gecko/dom/quota/FileStreams.h (libxul.so+0x7184f39)
#9 Release /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:54:40 (libxul.so+0x6492058) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#10 ~nsCOMPtr /builds/worker/workspace/obj-build/dist/include/nsCOMPtr.h:344:7 (libxul.so+0x6492058)
#11 ~FileSystemThreadSafeStreamOwner /builds/worker/checkouts/gecko/dom/fs/include/fs/FileSystemThreadSafeStreamOwner.h:38:54 (libxul.so+0x6492058)
#12 mozilla::dom::fs::FileSystemThreadSafeStreamOwner::~FileSystemThreadSafeStreamOwner() /builds/worker/checkouts/gecko/dom/fs/include/fs/FileSystemThreadSafeStreamOwner.h:38:54 (libxul.so+0x6492058)
#13 Release /builds/worker/checkouts/gecko/dom/fs/include/fs/FileSystemThreadSafeStreamOwner.h:27:3 (libxul.so+0x645faf7) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#14 Release /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:54:40 (libxul.so+0x645faf7)
#15 Release /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:420:36 (libxul.so+0x645faf7)
#16 ~RefPtr /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:85:7 (libxul.so+0x645faf7)
#17 mozilla::dom::FileSystemWritableFileStream::~FileSystemWritableFileStream() /builds/worker/checkouts/gecko/dom/fs/api/FileSystemWritableFileStream.cpp:294:1 (libxul.so+0x645faf7)
#18 mozilla::dom::FileSystemWritableFileStream::~FileSystemWritableFileStream() /builds/worker/checkouts/gecko/dom/fs/api/FileSystemWritableFileStream.cpp:289:63 (libxul.so+0x645fb95) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#19 mozilla::dom::WritableStream::DeleteCycleCollectable() /builds/worker/checkouts/gecko/dom/streams/WritableStream.cpp:47:1 (libxul.so+0x78dc2ce) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#20 mozilla::dom::WritableStream::cycleCollection::DeleteCycleCollectable(void*) /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WritableStream.h:34:3 (libxul.so+0x6465cae) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#21 MaybeKillObject /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:2486:29 (libxul.so+0x32f0f80) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#22 SnowWhiteKiller::~SnowWhiteKiller() /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:2473:7 (libxul.so+0x32f0f80)
#23 nsCycleCollector::FreeSnowWhite(bool) /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:2663:3 (libxul.so+0x32f0515) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#24 nsCycleCollector::BeginCollection(mozilla::CCReason, ccIsManual, nsICycleCollectorListener*) /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3660:3 (libxul.so+0x32f557e) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#25 nsCycleCollector::Collect(mozilla::CCReason, ccIsManual, js::SliceBudget&, nsICycleCollectorListener*, bool) /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3484:9 (libxul.so+0x32f4f83) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#26 nsCycleCollector_collect(mozilla::CCReason, nsICycleCollectorListener*) /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3995:28 (libxul.so+0x32f6f86) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#27 mozilla::dom::workerinternals::(anonymous namespace)::WorkerJSRuntime::CustomGCCallback(JSGCStatus) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:820:11 (libxul.so+0x77d484c) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#28 mozilla::CycleCollectedJSRuntime::OnGC(JSContext*, JSGCStatus, JS::GCReason) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSRuntime.cpp:1888:3 (libxul.so+0x32ce72a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#29 mozilla::CycleCollectedJSRuntime::GCCallback(JSContext*, JSGCStatus, JS::GCReason, void*) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSRuntime.cpp:1040:9 (libxul.so+0x32cabbb) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#30 callGCCallback /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:1433:3 (libxul.so+0xa815036) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#31 js::gc::GCRuntime::maybeCallGCCallback(JSGCStatus, JS::GCReason) /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4106:3 (libxul.so+0xa815036)
#32 ~AutoCallGCCallbacks /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4079:32 (libxul.so+0xa815981) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#33 js::gc::GCRuntime::gcCycle(bool, js::SliceBudget const&, JS::GCReason) /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4196:1 (libxul.so+0xa815981)
#34 js::gc::GCRuntime::collect(bool, js::SliceBudget const&, JS::GCReason) /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4381:9 (libxul.so+0xa8163ff) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#35 js::gc::GCRuntime::gc(JS::GCOptions, JS::GCReason) /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4458:3 (libxul.so+0xa7f8ced) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#36 JS::NonIncrementalGC(JSContext*, JS::GCOptions, JS::GCReason) /builds/worker/checkouts/gecko/js/src/gc/GCAPI.cpp:298:21 (libxul.so+0xa82477a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#37 mozilla::dom::WorkerPrivate::GarbageCollectInternal(JSContext*, bool, bool) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:5503:7 (libxul.so+0x77eda3c) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#38 mozilla::dom::WorkerPrivate::DoRunLoop(JSContext*) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:3250:9 (libxul.so+0x77ec5cc) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#39 mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:2114:42 (libxul.so+0x77d3a4e) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#40 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1192:16 (libxul.so+0x33df43a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#41 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x33e5a04) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#42 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:300:20 (libxul.so+0x3ee37de) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#43 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#44 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#45 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#46 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:370:10 (libxul.so+0x33dad93) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#47 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x4b1b9) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
Previous write of size 8 at 0x7b0c00047240 by thread T17:
#0 assign_assuming_AddRef /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:71:13 (libxul.so+0x71c93bd) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#1 operator= /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:188:5 (libxul.so+0x71c93bd)
#2 mozilla::dom::quota::RemoteQuotaObject::ClearActor() /builds/worker/checkouts/gecko/dom/quota/RemoteQuotaObject.cpp:30:10 (libxul.so+0x71c93bd)
#3 mozilla::dom::quota::RemoteQuotaObjectChild::ActorDestroy(mozilla::ipc::IProtocol::ActorDestroyReason) /builds/worker/checkouts/gecko/dom/quota/RemoteQuotaObjectChild.cpp:28:25 (libxul.so+0x71dc339) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#4 mozilla::ipc::IProtocol::DestroySubtree(mozilla::ipc::IProtocol::ActorDestroyReason) /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:626:3 (libxul.so+0x3ef0a0d) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#5 mozilla::dom::quota::PRemoteQuotaObjectChild::OnChannelClose() /builds/worker/workspace/obj-build/ipc/ipdl/PRemoteQuotaObjectChild.cpp:182:5 (libxul.so+0x71fb09d) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#6 mozilla::ipc::MessageChannel::NotifyChannelClosed(mozilla::ReleasableMonitorAutoLock&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:2197:14 (libxul.so+0x3edfb15) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#7 mozilla::ipc::MessageChannel::NotifyMaybeChannelError(mozilla::ReleasableMonitorAutoLock&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:2026:5 (libxul.so+0x3edf9a6) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#8 mozilla::ipc::MessageChannel::OnNotifyMaybeChannelError() /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:2072:3 (libxul.so+0x3edfc54) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#9 operator()<> /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1164:18 (libxul.so+0x3ef7c79) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#10 __invoke_impl<void, (lambda at /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1163:9)> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:60:14 (libxul.so+0x3ef7c79)
#11 __invoke<(lambda at /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1163:9)> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (libxul.so+0x3ef7c79)
#12 __apply_impl<(lambda at /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1163:9), std::tuple<> &> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/tuple:1678:14 (libxul.so+0x3ef7c79)
#13 apply<(lambda at /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1163:9), std::tuple<> &> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/tuple:1687:14 (libxul.so+0x3ef7c79)
#14 apply<mozilla::ipc::MessageChannel, void (mozilla::ipc::MessageChannel::*)()> /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1162:12 (libxul.so+0x3ef7c79)
#15 mozilla::detail::RunnableMethodImpl<mozilla::ipc::MessageChannel*, void (mozilla::ipc::MessageChannel::*)(), false, (mozilla::RunnableKind)1>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:1213:13 (libxul.so+0x3ef7c79)
#16 mozilla::TaskQueue::Runner::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskQueue.cpp:257:20 (libxul.so+0x33bf5c8) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#17 nsThreadPool::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadPool.cpp:343:14 (libxul.so+0x33e8210) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#18 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1192:16 (libxul.so+0x33df43a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#19 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x33e5a04) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#20 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:300:20 (libxul.so+0x3ee37de) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#21 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#22 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#23 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#24 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:370:10 (libxul.so+0x33dad93) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#25 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x4b1b9) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
Location is heap block of size 40 at 0x7b0c00047220 allocated by thread T17:
#0 malloc /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:663:5 (firefox-bin+0xd13ac) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#1 moz_xmalloc /builds/worker/checkouts/gecko/memory/mozalloc/mozalloc.cpp:52:15 (firefox-bin+0x15dfc8) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#2 operator new /builds/worker/workspace/obj-build/dist/include/mozilla/cxxalloc.h:33:10 (libxul.so+0x71c115d) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#3 MakeRefPtr<mozilla::dom::quota::RemoteQuotaObject, RefPtr<mozilla::dom::quota::RemoteQuotaObjectChild> &> /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:642:15 (libxul.so+0x71c115d)
#4 mozilla::dom::quota::QuotaObject::Deserialize(mozilla::dom::quota::IPCQuotaObject&) /builds/worker/checkouts/gecko/dom/quota/QuotaObject.cpp:70:10 (libxul.so+0x71c115d)
#5 mozilla::dom::quota::FileRandomAccessStream::Deserialize(mozilla::ipc::RandomAccessStreamParams&) /builds/worker/checkouts/gecko/dom/quota/FileStreams.cpp:152:18 (libxul.so+0x7182eee) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#6 non-virtual thunk to mozilla::dom::quota::FileRandomAccessStream::Deserialize(mozilla::ipc::RandomAccessStreamParams&) /builds/worker/checkouts/gecko/dom/quota/FileStreams.cpp (libxul.so+0x7183082) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#7 mozilla::ipc::DeserializeRandomAccessStream(mozilla::ipc::RandomAccessStreamParams&) /builds/worker/checkouts/gecko/ipc/glue/RandomAccessStreamUtils.cpp:64:16 (libxul.so+0x3ef9eae) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#8 operator() /builds/worker/checkouts/gecko/dom/fs/api/FileSystemWritableFileStream.cpp:409:24 (libxul.so+0x6478a96) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#9 mozilla::detail::ProxyFunctionRunnable<mozilla::dom::FileSystemWritableFileStream::Create(nsCOMPtr<nsIGlobalObject> const&, RefPtr<mozilla::dom::FileSystemManager>&, RefPtr<mozilla::dom::FileSystemWritableFileStreamChild>, mozilla::ipc::RandomAccessStreamParams&&, mozilla::dom::fs::FileSystemEntryMetadata&&, RefPtr<mozilla::dom::StrongWorkerRef>)::$_2, mozilla::MozPromise<mozilla::NotNull<nsCOMPtr<nsIRandomAccessStream>>, nsresult, true>>::Run() /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:1690:29 (libxul.so+0x6478a96)
#10 mozilla::TaskQueue::Runner::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskQueue.cpp:257:20 (libxul.so+0x33bf5c8) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#11 nsThreadPool::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadPool.cpp:343:14 (libxul.so+0x33e8210) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#12 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1192:16 (libxul.so+0x33df43a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#13 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x33e5a04) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#14 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:300:20 (libxul.so+0x3ee37de) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#15 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#16 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#17 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#18 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:370:10 (libxul.so+0x33dad93) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#19 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x4b1b9) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
Thread T24 'DOM Worker' (tid=90252, running) created by main thread at:
#0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1020:3 (firefox-bin+0xd2f8b) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#1 _PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x4242e) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
#2 PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x376c4) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
#3 nsThread::Init(nsTSubstring<char> const&) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:619:20 (libxul.so+0x33dc4b7) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#4 mozilla::dom::WorkerThread::Create(mozilla::dom::WorkerThreadFriendKey const&) /builds/worker/checkouts/gecko/dom/workers/WorkerThread.cpp:101:7 (libxul.so+0x78072bb) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#5 mozilla::dom::workerinternals::RuntimeService::ScheduleWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1313:37 (libxul.so+0x77bc573) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#6 mozilla::dom::workerinternals::RuntimeService::RegisterWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1195:19 (libxul.so+0x77bb967) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#7 mozilla::dom::WorkerPrivate::Constructor(JSContext*, nsTSubstring<char16_t> const&, bool, mozilla::dom::WorkerKind, mozilla::dom::RequestCredentials, mozilla::dom::WorkerType, nsTSubstring<char16_t> const&, nsTSubstring<char> const&, mozilla::dom::WorkerLoadInfo*, mozilla::ErrorResult&, nsTString<char16_t>, std::function<void (bool)>&&, std::function<void ()>&&) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:2692:24 (libxul.so+0x77e9102) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#8 mozilla::dom::Worker::Constructor(mozilla::dom::GlobalObject const&, nsTSubstring<char16_t> const&, mozilla::dom::WorkerOptions const&, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/workers/Worker.cpp:50:41 (libxul.so+0x77c9a52) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#9 mozilla::dom::Worker_Binding::_constructor(JSContext*, unsigned int, JS::Value*) /builds/worker/workspace/obj-build/dom/bindings/./WorkerBinding.cpp:1158:52 (libxul.so+0x587dc03) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#10 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:486:13 (libxul.so+0xa171b7a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#11 CallJSNativeConstructor /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:502:8 (libxul.so+0xa171b7a)
#12 InternalConstruct(JSContext*, js::AnyConstructArgs const&, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:727:10 (libxul.so+0xa171b7a)
#13 ConstructFromStack /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:755:10 (libxul.so+0xa180f5a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#14 js::Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3381:16 (libxul.so+0xa180f5a)
#15 MaybeEnterInterpreterTrampoline /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:400:10 (libxul.so+0xa16fd4c) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#16 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:458:13 (libxul.so+0xa16fd4c)
#17 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:612:13 (libxul.so+0xa1707a6) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#18 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:647:10 (libxul.so+0xa171357) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#19 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:679:8 (libxul.so+0xa171357)
#20 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/CallAndConstruct.cpp:119:10 (libxul.so+0xa214559) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#21 mozilla::dom::EventListener::HandleEvent(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/./EventListenerBinding.cpp:62:8 (libxul.so+0x5a76c53) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#22 HandleEvent<mozilla::dom::EventTarget *> /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventListenerBinding.h:65:12 (libxul.so+0x63375ba) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#23 mozilla::EventListenerManager::HandleEventSingleListener(mozilla::EventListenerManager::Listener*, nsAtom*, mozilla::WidgetEvent*, mozilla::dom::Event*, mozilla::dom::EventTarget*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1342:43 (libxul.so+0x63375ba)
#24 mozilla::EventListenerManager::HandleEventWithListenerArray(mozilla::EventListenerManager::ListenerArray*, nsAtom*, mozilla::EventMessage, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1663:12 (libxul.so+0x6338a0b) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#25 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1560:35 (libxul.so+0x6337d50) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#26 HandleEvent /builds/worker/workspace/obj-build/dist/include/mozilla/EventListenerManager.h:465:5 (libxul.so+0x632ae21) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#27 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:363:17 (libxul.so+0x632ae21)
#28 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:610:18 (libxul.so+0x6329b9e) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#29 mozilla::EventDispatcher::Dispatch(mozilla::dom::EventTarget*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:1222:11 (libxul.so+0x632ddc8) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#30 nsDocumentViewer::LoadComplete(nsresult) /builds/worker/checkouts/gecko/layout/base/nsDocumentViewer.cpp:1084:7 (libxul.so+0x8188f7d) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#31 nsDocShell::EndPageLoad(nsIWebProgress*, nsIChannel*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:6406:20 (libxul.so+0x98ec444) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#32 nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:5800:7 (libxul.so+0x98ebc9b) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#33 non-virtual thunk to nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp (libxul.so+0x98ecd19) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#34 nsDocLoader::DoFireOnStateChange(nsIWebProgress*, nsIRequest*, int&, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:1380:3 (libxul.so+0x41623c9) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#35 nsDocLoader::doStopDocumentLoad(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:978:14 (libxul.so+0x4161a9f) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#36 nsDocLoader::DocLoaderIsEmpty(bool, mozilla::Maybe<nsresult> const&) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:795:9 (libxul.so+0x415fd64) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#37 nsDocLoader::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:678:5 (libxul.so+0x4160fa2) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#38 nsDocShell::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:13900:23 (libxul.so+0x990a11f) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#39 non-virtual thunk to nsDocShell::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp (libxul.so+0x990a347) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#40 mozilla::net::nsLoadGroup::NotifyRemovalObservers(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/base/nsLoadGroup.cpp:631:22 (libxul.so+0x35c5f0e) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#41 mozilla::net::nsLoadGroup::RemoveRequest(nsIRequest*, nsISupports*, nsresult) /builds/worker/checkouts/gecko/netwerk/base/nsLoadGroup.cpp:535:10 (libxul.so+0x35c741c) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#42 DoUnblockOnload /builds/worker/checkouts/gecko/dom/base/Document.cpp:11701:18 (libxul.so+0x4ba2a89) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#43 mozilla::dom::Document::UnblockOnload(bool) /builds/worker/checkouts/gecko/dom/base/Document.cpp:11639:9 (libxul.so+0x4ba2a89)
#44 mozilla::dom::Document::DispatchContentLoadedEvents() /builds/worker/checkouts/gecko/dom/base/Document.cpp:8151:3 (libxul.so+0x4bb5f3a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#45 operator()<> /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1164:18 (libxul.so+0x4c26069) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#46 __invoke_impl<void, (lambda at /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1163:9)> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:60:14 (libxul.so+0x4c26069)
#47 __invoke<(lambda at /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1163:9)> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (libxul.so+0x4c26069)
#48 __apply_impl<(lambda at /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1163:9), std::tuple<> &> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/tuple:1678:14 (libxul.so+0x4c26069)
#49 apply<(lambda at /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1163:9), std::tuple<> &> /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/tuple:1687:14 (libxul.so+0x4c26069)
#50 apply<mozilla::dom::Document, void (mozilla::dom::Document::*)()> /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1162:12 (libxul.so+0x4c26069)
#51 mozilla::detail::RunnableMethodImpl<mozilla::dom::Document*, void (mozilla::dom::Document::*)(), true, (mozilla::RunnableKind)0>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1213:13 (libxul.so+0x4c26069)
#52 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:559:16 (libxul.so+0x33c68f2) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#53 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:886:26 (libxul.so+0x33bd3f0) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#54 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:709:15 (libxul.so+0x33bbaf6) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#55 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:495:36 (libxul.so+0x33bbeef) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#56 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:218:37 (libxul.so+0x33c97a4) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#57 mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5 (libxul.so+0x33c97a4)
#58 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1198:16 (libxul.so+0x33df26a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#59 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x33e5a04) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#60 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x3ee2c4e) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#61 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x3ee371b) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#62 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#63 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#64 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#65 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x7d13f13) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#66 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:721:20 (libxul.so+0x9fd867f) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#67 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x3ee36ca) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#68 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#69 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#70 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#71 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:656:34 (libxul.so+0x9fd82e0) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#72 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x9fe4652) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#73 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x15be42) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#74 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:375:18 (firefox-bin+0x15be42)
Thread T17 'StreamTrans #1' (tid=90241, running) created by main thread at:
#0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1020:3 (firefox-bin+0xd2f8b) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#1 _PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x4242e) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
#2 PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x376c4) (BuildId: b6f58db5ff0819afc822840d196a0175d36eee04)
#3 nsThread::Init(nsTSubstring<char> const&) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:619:20 (libxul.so+0x33dc4b7) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#4 nsThreadManager::NewNamedThread(nsTSubstring<char> const&, nsIThreadManager::ThreadCreationOptions, nsIThread**) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadManager.cpp:597:22 (libxul.so+0x33e4536) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#5 NS_NewNamedThread(nsTSubstring<char> const&, nsIThread**, already_AddRefed<nsIRunnable>, nsIThreadManager::ThreadCreationOptions) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:176:57 (libxul.so+0x33ed0ef) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#6 NS_NewNamedThread /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:168:10 (libxul.so+0x33e74ff) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#7 nsThreadPool::PutEvent(already_AddRefed<nsIRunnable>, unsigned int) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadPool.cpp:126:17 (libxul.so+0x33e74ff)
#8 Dispatch /builds/worker/checkouts/gecko/xpcom/threads/nsThreadPool.cpp:380:3 (libxul.so+0x33e8e64) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#9 non-virtual thunk to nsThreadPool::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadPool.cpp (libxul.so+0x33e8e64)
#10 Dispatch /builds/worker/checkouts/gecko/netwerk/base/nsStreamTransportService.cpp:296:16 (libxul.so+0x363c029) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#11 non-virtual thunk to mozilla::net::nsStreamTransportService::Dispatch(already_AddRefed<nsIRunnable>, unsigned int) /builds/worker/checkouts/gecko/netwerk/base/nsStreamTransportService.cpp (libxul.so+0x363c029)
#12 nsJARChannel::OpenLocalFile() /builds/worker/checkouts/gecko/modules/libjar/nsJARChannel.cpp:434:19 (libxul.so+0x408c760) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#13 nsJARChannel::AsyncOpen(nsIStreamListener*) /builds/worker/checkouts/gecko/modules/libjar/nsJARChannel.cpp:1136:8 (libxul.so+0x408eaea) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#14 mozilla::dom::workerinternals::loader::WorkerScriptLoader::LoadScript(mozilla::dom::ThreadSafeRequestHandle*) /builds/worker/checkouts/gecko/dom/workers/ScriptLoader.cpp:1056:19 (libxul.so+0x77c4fe7) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#15 mozilla::dom::workerinternals::loader::ScriptLoaderRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/ScriptLoader.cpp:1414:36 (libxul.so+0x77c7065) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#16 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:559:16 (libxul.so+0x33c68f2) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#17 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:886:26 (libxul.so+0x33bd3f0) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#18 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:709:15 (libxul.so+0x33bbaf6) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#19 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:495:36 (libxul.so+0x33bbeef) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#20 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:221:37 (libxul.so+0x33c97f7) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#21 mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_1>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5 (libxul.so+0x33c97f7)
#22 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1198:16 (libxul.so+0x33df26a) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#23 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x33e5a04) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#24 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:107:5 (libxul.so+0x3ee2cc6) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#25 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x3ee371b) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#26 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#27 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#28 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#29 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x7d13f13) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#30 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:721:20 (libxul.so+0x9fd867f) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#31 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x3ee36ca) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#32 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:370:10 (libxul.so+0x3e5d338) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#33 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:363:3 (libxul.so+0x3e5d338)
#34 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:345:3 (libxul.so+0x3e5d338)
#35 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:656:34 (libxul.so+0x9fd82e0) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#36 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x9fe4652) (BuildId: a25ec5831b07ce7985c376cdb38929d748996b93)
#37 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x15be42) (BuildId: 0161cb4ba2f38f4ad8fa8c1eb00c88691e772bc0)
#38 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:375:18 (firefox-bin+0x15be42)
Reporter | ||
Comment 1•1 year ago
|
||
This also appears as:
Assertion failure: mWorkerThread && mWorkerThread->IsOnCurrentThread() (not on worker thread!), at /builds/worker/workspace/obj-build/dist/include/mozilla/ipc/MessageChannel.h:504
Hit MOZ_CRASH(RemoteQuotaObject not thread-safe) at /builds/worker/checkouts/gecko/xpcom/base/nsISupportsImpl.cpp:64
Assertion failure: mActor->GetActorEventTarget()->IsOnCurrentThread(), at /builds/worker/checkouts/gecko/dom/quota/RemoteQuotaObject.cpp:38
Reporter | ||
Comment 2•1 year ago
|
||
A Pernosco session is available here: https://pernos.co/debug/Tpr47Worucm7JAyLq6DYwA/index.html
Comment 3•1 year ago
|
||
This looks like the same race as bug 1856091, except there's more information, so I'll mark it as blocking.
Comment 4•1 year ago
|
||
I marked bug 1856091 as sec-moderate because it was a single report, but I'm going to mark this one sec-high because it is frequent enough to be a fuzz blocker, and in debug builds it is hitting thread safety assertions.
Comment 5•1 year ago
|
||
Jan, any ideas what could have regressed this? I'm guessing this is a regression based on that it is a fuzz blocker and it just showed up on TreeHerder. Bug 1841702 landed a week or so ago and changed FileSystemWritableFileStream.cpp, but none of the other files in the stack have changed recently as far as I could see. Thanks.
Comment 6•1 year ago
|
||
Comment 0 says this is reproducible in 20230922-efa8aa7a4f54, and bug 1841702 got merged to central late on 2023-09-21, so that seems consistent at least.
Comment 7•1 year ago
|
||
[Tracking Requested - why for this release]: apparent sec-high regression
Updated•1 year ago
|
Comment 8•1 year ago
|
||
The bug is marked as tracked for firefox120 (nightly). However, the bug still isn't assigned.
:jstutte, could you please find an assignee for this tracked bug? If you disagree with the tracking decision, please talk with the release managers.
For more information, please visit BugBot documentation.
Comment 9•1 year ago
|
||
From the pernosco trace, the call to Close()
(https://searchfox.org/mozilla-central/rev/d895cf273d8cdceb4256f561c1ad1bf91135202a/dom/quota/FileStreams.h#152) is happening on a worker thread. This ends up calling RemoteQuotaObject::Close
(https://searchfox.org/mozilla-central/rev/d895cf273d8cdceb4256f561c1ad1bf91135202a/dom/quota/FileStreams.cpp#51). The RemoteQuotaObject
type should only ever be closed on the thread belonging to its actor (https://searchfox.org/mozilla-central/rev/d895cf273d8cdceb4256f561c1ad1bf91135202a/dom/quota/RemoteQuotaObject.cpp#38), which in this case is actually a TaskQueue
(WritableStreamQueue), backed by the stream transport service.
The nsFileStreamBase
appears to have been held alive by a FileSystemThreadSafeStreamOwner
(https://searchfox.org/mozilla-central/rev/d895cf273d8cdceb4256f561c1ad1bf91135202a/dom/fs/include/fs/FileSystemThreadSafeStreamOwner.h#44), which seems like a bit of a misnomer, given that the type which it is managing appears to be definitely not-threadsafe. It seems on first glance like the intention of the type was to effectively be a nsMainThreadPtrHolder<T>
except without implementing destruction correctly, and for a different event target.
It appears that the dom::fs
component does have a TargetPtrHolder
type which they are using for cases like this until bug 1805830 adds a generic version of nsMainThreadPtrHolder
(though I am unsure if the implementation is correct).
I believe we could also get a crash like this if we enter this error return case, as aValue.ResolveValue()
will still be owned by the current stack frame (https://searchfox.org/mozilla-central/rev/d895cf273d8cdceb4256f561c1ad1bf91135202a/dom/fs/api/FileSystemWritableFileStream.cpp#343).
Assignee | ||
Comment 10•1 year ago
•
|
||
Yeah, FileSystemWritableFileStream::Create
deserializes the stream on a background thread, so the stream must be then closed on the same background thread. The creation of FileSystemWritableFileStream is quite complex, actually more complex than FileSystemSyncAccessHandle::Create
because FileSystemSyncAccessHandle
deserializes the stream lazily. We could try to simplify FileSystemWritableFileStream::Create
a bit while we are here.
Assignee | ||
Updated•1 year ago
|
Updated•1 year ago
|
Assignee | ||
Comment 11•1 year ago
|
||
I filed bug 1857155. I think we should try to simplify the construction first.
Updated•1 year ago
|
Reporter | ||
Comment 12•1 year ago
|
||
This was last report by fuzzers targeting mc-20231009-6404412771ea.
Assignee | ||
Comment 13•1 year ago
|
||
(In reply to Tyson Smith [:tsmith] from comment #12)
This was last report by fuzzers targeting mc-20231009-6404412771ea.
Bug 1857155 was fixed on 2023-10-10, can you re-run the tests to see if there's still the data race ?
Reporter | ||
Comment 14•1 year ago
|
||
(In reply to Jan Varga [:janv] from comment #13)
Bug 1857155 was fixed on 2023-10-10, can you re-run the tests to see if there's still the data race ?
Sorry, yes that what I mean. I wanted to double check bug 1857155 was intended to fix this issue.
Comment 15•1 year ago
|
||
Jan, do you think we can uplift the patches from bug 1857155 to ESR (maybe here on this bug) ?
Assignee | ||
Comment 16•1 year ago
|
||
(In reply to Jens Stutte [:jstutte] from comment #15)
Jan, do you think we can uplift the patches from bug 1857155 to ESR (maybe here on this bug) ?
Yeah, we can do that.
Comment 17•1 year ago
|
||
It'll need rebasing, FWIW. Let's target next cycle.
Assignee | ||
Comment 18•1 year ago
|
||
Assignee | ||
Comment 19•1 year ago
|
||
Depends on D191960
Assignee | ||
Comment 20•1 year ago
|
||
Depends on D191961
Assignee | ||
Comment 21•1 year ago
|
||
Depends on D191962
Assignee | ||
Comment 22•1 year ago
|
||
Depends on D191963
Assignee | ||
Comment 23•1 year ago
|
||
Depends on D191964
Assignee | ||
Comment 24•1 year ago
|
||
Depends on D191965
Assignee | ||
Comment 25•1 year ago
|
||
Depends on D191966
Assignee | ||
Comment 26•1 year ago
|
||
Depends on D191967
Assignee | ||
Comment 27•1 year ago
|
||
Updated•1 year ago
|
Assignee | ||
Comment 28•1 year ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #17)
It'll need rebasing, FWIW. Let's target next cycle.
I rebased patches for bug 1841702 and bug 1857155 and attached them to this bug. They should now apply cleanly to ESR 115.
Assignee | ||
Comment 30•1 year ago
|
||
Comment on attachment 9360392 [details]
Bug 1856072 - Add proper handling for failed build worker refs; r=#dom-storage
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: It is a sec-high bug.
- User impact if declined: Users would still experience sporadic crashes.
- Fix Landed on Version: 119 and 120
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Despite there are many patches with relatively larger changes, it's mostly about reducing complexity of object construction the patches landed a month ago on Nightly without causing regressions.
Assignee | ||
Updated•1 year ago
|
Assignee | ||
Updated•1 year ago
|
Comment 31•1 year ago
|
||
(In reply to Jens Stutte [:jstutte] from comment #15)
Jan, do you think we can uplift the patches from bug 1857155 to ESR (maybe here on this bug) ?
Do we NEED this fix on ESR 115? back in comment 5 this was claimed to be a regression and blamed on bug 1841702. If true that was way after the ESR 115 branch and it shouldn't be affected. Now we have a patch proposing to put that bug on the ESR branch (and it's fix).
Comment 32•1 year ago
|
||
I leave it to Jan to answer, if we think this was a 100% regression from bug 1841702 or if there is potential to happen also otherwise on the current ESR. But I must admit I might have caused confusion here asking for it in comment 15... sorry, if that was the case.
Assignee | ||
Comment 33•1 year ago
|
||
(In reply to Daniel Veditz [:dveditz] from comment #31)
(In reply to Jens Stutte [:jstutte] from comment #15)
Jan, do you think we can uplift the patches from bug 1857155 to ESR (maybe here on this bug) ?
Do we NEED this fix on ESR 115? back in comment 5 this was claimed to be a regression and blamed on bug 1841702. If true that was way after the ESR 115 branch and it shouldn't be affected. Now we have a patch proposing to put that bug on the ESR branch (and it's fix).
I suspect the issue was introduced by bug 1815837 which changed FileSystemWritableFileStream
construction to be async. The construction is now synchronous again after bug 1841702 and bug 1857155.
Comment 34•1 year ago
|
||
(In reply to Jan Varga [:janv] from comment #33)
I suspect the issue was introduced by bug 1815837 which changed
FileSystemWritableFileStream
construction to be async.
That was introduced in 111, so ESR would be affected. Should we update the regressing bug then?
Comment 35•1 year ago
|
||
Comment on attachment 9360392 [details]
Bug 1856072 - Add proper handling for failed build worker refs; r=#dom-storage
Approved for 115.5esr
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Comment 36•1 year ago
|
||
uplift |
Updated•1 year ago
|
Updated•1 year ago
|
Comment 37•9 months ago
|
||
Bulk-unhiding security bugs fixed in Firefox 119-121 (Fall 2023). Use "moo-doctrine-subsidy" to filter
Description
•