ThreadSanitizer: data race [@ mozilla::GetExtensionName] vs. [@ mozilla::GetExtensionName]
Categories
(Core :: Graphics: CanvasWebGL, defect, P1)
Tracking
()
People
(Reporter: tsmith, Assigned: jgilbert)
References
(Blocks 1 open bug)
Details
(Keywords: csectype-race, sec-low, Whiteboard: [adv-main119-])
Attachments
(1 file)
Found while fuzzing m-c 20230207-a30d16941345 (--enable-thread-sanitizer --enable-fuzzing)
Unfortunately a reliable test case is not available. However the fuzzers are able to discover it reliably and have reported it daily since it was initially reported.
WARNING: ThreadSanitizer: data race (pid=114062)
Read of size 1 at 0x7ff47bcda550 by thread T59:
#0 mozilla::GetExtensionName(mozilla::WebGLExtensionID) /builds/worker/checkouts/gecko/dom/canvas/WebGLContextExtensions.cpp:24:8 (libxul.so+0x73ca98e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#1 mozilla::ClientWebGLContext::GetExtension(JSContext*, nsTSubstring<char16_t> const&, JS::MutableHandle<JSObject*>, mozilla::dom::CallerType, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/canvas/WebGLContextExtensions.cpp:91:27 (libxul.so+0x73caf79) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#2 mozilla::dom::WebGLRenderingContext_Binding::getExtension(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /builds/worker/workspace/obj-build/dom/bindings/WebGLRenderingContextBinding.cpp:15659:24 (libxul.so+0x6bcf28e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#3 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /builds/worker/checkouts/gecko/dom/bindings/BindingUtils.cpp:3318:13 (libxul.so+0x71d5614) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#4 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:459:13 (libxul.so+0xc1c640b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#5 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:547:12 (libxul.so+0xc1c640b)
#6 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1bc51c) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#7 CallFromStack /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:619:10 (libxul.so+0xc1bc51c)
#8 Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3362:16 (libxul.so+0xc1bc51c)
#9 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:431:13 (libxul.so+0xc1af7ff) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#10 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:579:13 (libxul.so+0xc1c64e0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#11 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1c7193) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#12 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:646:8 (libxul.so+0xc1c7193)
#13 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:117:10 (libxul.so+0xc25b3fb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#14 mozilla::dom::EventHandlerNonNull::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/EventHandlerBinding.cpp:65:37 (libxul.so+0x6f04c66) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#15 Call<nsCOMPtr<mozilla::dom::EventTarget> > /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventHandlerBinding.h:82:12 (libxul.so+0x789e626) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#16 mozilla::JSEventHandler::HandleEvent(mozilla::dom::Event*) /builds/worker/checkouts/gecko/dom/events/JSEventHandler.cpp:199:12 (libxul.so+0x789e626)
#17 mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1314:22 (libxul.so+0x787670e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#18 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1504:17 (libxul.so+0x7877521) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#19 HandleEvent /builds/worker/checkouts/gecko/dom/events/EventListenerManager.h:395:5 (libxul.so+0x786c052) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#20 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:347:17 (libxul.so+0x786c052)
#21 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:549:16 (libxul.so+0x786b424) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#22 mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:1122:11 (libxul.so+0x786e145) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#23 mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp (libxul.so+0x7871320) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#24 mozilla::DOMEventTargetHelper::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/events/DOMEventTargetHelper.cpp:176:17 (libxul.so+0x7842d56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#25 mozilla::dom::EventTarget::DispatchEvent(mozilla::dom::Event&) /builds/worker/checkouts/gecko/dom/events/EventTarget.cpp:180:13 (libxul.so+0x787ee86) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#26 mozilla::dom::MessageEventRunnable::DispatchDOMEvent(JSContext*, mozilla::dom::WorkerPrivate*, mozilla::DOMEventTargetHelper*, bool) /builds/worker/checkouts/gecko/dom/workers/MessageEventRunnable.cpp:104:12 (libxul.so+0x8e4c62e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#27 mozilla::dom::MessageEventRunnable::WorkerRun(JSContext*, mozilla::dom::WorkerPrivate*) /builds/worker/checkouts/gecko/dom/workers/MessageEventRunnable.cpp (libxul.so+0x8e4cc56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#28 mozilla::dom::WorkerRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/WorkerRunnable.cpp:377:12 (libxul.so+0x8e93798) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#29 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1219:16 (libxul.so+0x42f151e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#30 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#31 mozilla::dom::WorkerPrivate::DoRunLoop(JSContext*) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:3275:7 (libxul.so+0x8e833fa) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#32 mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:2044:42 (libxul.so+0x8e6b86d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#33 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1219:16 (libxul.so+0x42f151e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#34 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#35 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:300:20 (libxul.so+0x5010fce) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#36 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#37 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#38 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#39 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:384:10 (libxul.so+0x42ec6b2) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#40 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x523e3) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
Previous write of size 1 at 0x7ff47bcda550 by thread T54:
#0 mozilla::GetExtensionName(mozilla::WebGLExtensionID) /builds/worker/checkouts/gecko/dom/canvas/WebGLContextExtensions.cpp:25:17 (libxul.so+0x73ca9a7) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#1 mozilla::ClientWebGLContext::GetExtension(JSContext*, nsTSubstring<char16_t> const&, JS::MutableHandle<JSObject*>, mozilla::dom::CallerType, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/canvas/WebGLContextExtensions.cpp:91:27 (libxul.so+0x73caf79) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#2 mozilla::dom::WebGLRenderingContext_Binding::getExtension(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /builds/worker/workspace/obj-build/dom/bindings/WebGLRenderingContextBinding.cpp:15659:24 (libxul.so+0x6bcf28e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#3 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /builds/worker/checkouts/gecko/dom/bindings/BindingUtils.cpp:3318:13 (libxul.so+0x71d5614) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#4 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:459:13 (libxul.so+0xc1c640b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#5 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:547:12 (libxul.so+0xc1c640b)
#6 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1bc51c) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#7 CallFromStack /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:619:10 (libxul.so+0xc1bc51c)
#8 Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3362:16 (libxul.so+0xc1bc51c)
#9 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:431:13 (libxul.so+0xc1af7ff) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#10 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:579:13 (libxul.so+0xc1c64e0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#11 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1c7193) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#12 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:646:8 (libxul.so+0xc1c7193)
#13 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:117:10 (libxul.so+0xc25b3fb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#14 mozilla::dom::EventHandlerNonNull::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/EventHandlerBinding.cpp:65:37 (libxul.so+0x6f04c66) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#15 Call<nsCOMPtr<mozilla::dom::EventTarget> > /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventHandlerBinding.h:82:12 (libxul.so+0x789e626) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#16 mozilla::JSEventHandler::HandleEvent(mozilla::dom::Event*) /builds/worker/checkouts/gecko/dom/events/JSEventHandler.cpp:199:12 (libxul.so+0x789e626)
#17 mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1314:22 (libxul.so+0x787670e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#18 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1504:17 (libxul.so+0x7877521) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#19 HandleEvent /builds/worker/checkouts/gecko/dom/events/EventListenerManager.h:395:5 (libxul.so+0x786c052) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#20 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:347:17 (libxul.so+0x786c052)
#21 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:549:16 (libxul.so+0x786b424) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#22 mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:1122:11 (libxul.so+0x786e145) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#23 mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp (libxul.so+0x7871320) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#24 mozilla::DOMEventTargetHelper::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/events/DOMEventTargetHelper.cpp:176:17 (libxul.so+0x7842d56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#25 mozilla::dom::EventTarget::DispatchEvent(mozilla::dom::Event&) /builds/worker/checkouts/gecko/dom/events/EventTarget.cpp:180:13 (libxul.so+0x787ee86) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#26 mozilla::dom::MessageEventRunnable::DispatchDOMEvent(JSContext*, mozilla::dom::WorkerPrivate*, mozilla::DOMEventTargetHelper*, bool) /builds/worker/checkouts/gecko/dom/workers/MessageEventRunnable.cpp:104:12 (libxul.so+0x8e4c62e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#27 mozilla::dom::MessageEventRunnable::WorkerRun(JSContext*, mozilla::dom::WorkerPrivate*) /builds/worker/checkouts/gecko/dom/workers/MessageEventRunnable.cpp (libxul.so+0x8e4cc56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#28 mozilla::dom::WorkerRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/WorkerRunnable.cpp:377:12 (libxul.so+0x8e93798) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#29 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1219:16 (libxul.so+0x42f151e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#30 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#31 mozilla::dom::WorkerPrivate::DoRunLoop(JSContext*) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:3275:7 (libxul.so+0x8e833fa) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#32 mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:2044:42 (libxul.so+0x8e6b86d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#33 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1219:16 (libxul.so+0x42f151e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#34 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#35 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:300:20 (libxul.so+0x5010fce) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#36 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#37 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#38 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#39 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:384:10 (libxul.so+0x42ec6b2) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#40 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x523e3) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
Location is global 'mozilla::GetExtensionName(mozilla::WebGLExtensionID)::initialized' of size 1 at 0x7ff47bcda550 (libxul.so+0xef42550)
Thread T59 'DOM Worker' (tid=117070, running) created by main thread at:
#0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (firefox-bin+0xc20cd) (BuildId: 4e33ff7caae81f8148342b4dcc6b909455226a50)
#1 _PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x4948f) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
#2 PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3e2a5) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
#3 nsThread::Init(nsTSubstring<char> const&) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:619:18 (libxul.so+0x42ee297) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#4 mozilla::dom::WorkerThread::Create(mozilla::dom::WorkerThreadFriendKey const&) /builds/worker/checkouts/gecko/dom/workers/WorkerThread.cpp:102:7 (libxul.so+0x8e9e13b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#5 mozilla::dom::workerinternals::RuntimeService::ScheduleWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1325:37 (libxul.so+0x8e4f502) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#6 mozilla::dom::workerinternals::RuntimeService::RegisterWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1207:19 (libxul.so+0x8e4e949) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#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>) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:2649:24 (libxul.so+0x8e7fd21) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#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:43:41 (libxul.so+0x8e5c085) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#9 mozilla::dom::Worker_Binding::_constructor(JSContext*, unsigned int, JS::Value*) /builds/worker/workspace/obj-build/dom/bindings/WorkerBinding.cpp:1164:52 (libxul.so+0x6cc036e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#10 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:459:13 (libxul.so+0xc1c7976) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#11 CallJSNativeConstructor /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:475:8 (libxul.so+0xc1c7976)
#12 InternalConstruct(JSContext*, js::AnyConstructArgs const&, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:694:10 (libxul.so+0xc1c7976)
#13 ConstructFromStack /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:722:10 (libxul.so+0xc1bc553) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#14 Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3347:16 (libxul.so+0xc1bc553)
#15 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:431:13 (libxul.so+0xc1af7ff) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#16 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:579:13 (libxul.so+0xc1c64e0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#17 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1c7193) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#18 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:646:8 (libxul.so+0xc1c7193)
#19 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/SelfHosting.cpp:1488:10 (libxul.so+0xc4513f0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#20 AsyncFunctionResume(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, ResumeKind, JS::Handle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/AsyncFunction.cpp:149:8 (libxul.so+0xc23b1e2) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#21 js::AsyncFunctionAwaitedFulfilled(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, JS::Handle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/AsyncFunction.cpp:190:10 (libxul.so+0xc23af17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#22 AsyncFunctionPromiseReactionJob /builds/worker/checkouts/gecko/js/src/builtin/Promise.cpp:2111:12 (libxul.so+0xc3e08dd) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#23 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /builds/worker/checkouts/gecko/js/src/builtin/Promise.cpp:2174:12 (libxul.so+0xc3e08dd)
#24 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:459:13 (libxul.so+0xc1c640b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#25 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:547:12 (libxul.so+0xc1c640b)
#26 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1c7193) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#27 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:646:8 (libxul.so+0xc1c7193)
#28 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:117:10 (libxul.so+0xc25b3fb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#29 mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/PromiseBinding.cpp:83:8 (libxul.so+0x65f4973) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#30 Call /builds/worker/workspace/obj-build/dist/include/mozilla/dom/PromiseBinding.h:198:12 (libxul.so+0x41d194d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#31 Call /builds/worker/workspace/obj-build/dist/include/mozilla/dom/PromiseBinding.h:211:12 (libxul.so+0x41d194d)
#32 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:213:18 (libxul.so+0x41d194d)
#33 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:676:17 (libxul.so+0x41be046) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#34 LeaveMicroTask /builds/worker/workspace/obj-build/dist/include/mozilla/CycleCollectedJSContext.h:246:7 (libxul.so+0x71e7d91) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#35 mozilla::dom::CallbackObject::CallSetup::~CallSetup() /builds/worker/checkouts/gecko/dom/bindings/CallbackObject.cpp:393:11 (libxul.so+0x71e7d91)
#36 ReceiveMessage /builds/worker/workspace/obj-build/dist/include/mozilla/dom/MessageManagerBinding.h:655:3 (libxul.so+0x8e30be7) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#37 mozilla::dom::JSActor::CallReceiveMessage(JSContext*, mozilla::dom::JSActorMessageMeta const&, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSActor.cpp:283:22 (libxul.so+0x8e30be7)
#38 mozilla::dom::JSActor::ReceiveMessage(JSContext*, mozilla::dom::JSActorMessageMeta const&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSActor.cpp:299:3 (libxul.so+0x8e30f7b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#39 mozilla::dom::JSActorManager::ReceiveRawMessage(mozilla::dom::JSActorMessageMeta const&, mozilla::Maybe<mozilla::dom::ipc::StructuredCloneData>&&, mozilla::Maybe<mozilla::dom::ipc::StructuredCloneData>&&) /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSActorManager.cpp:202:14 (libxul.so+0x8e3455e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#40 mozilla::dom::WindowGlobalChild::RecvRawMessage(mozilla::dom::JSActorMessageMeta const&, mozilla::Maybe<mozilla::dom::ClonedMessageData> const&, mozilla::Maybe<mozilla::dom::ClonedMessageData> const&) /builds/worker/checkouts/gecko/dom/ipc/WindowGlobalChild.cpp:545:3 (libxul.so+0x8bfc919) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#41 mozilla::dom::PWindowGlobalChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PWindowGlobalChild.cpp:1671:85 (libxul.so+0x8e12817) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#42 mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PContentChild.cpp:8784:32 (libxul.so+0x8cf826a) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#43 mozilla::dom::ContentChild::OnMessageReceived(IPC::Message const&) /builds/worker/checkouts/gecko/dom/ipc/ContentChild.cpp:3744:25 (libxul.so+0x8b42273) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#44 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1800:25 (libxul.so+0x500bb9c) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#45 mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message, mozilla::DefaultDelete<IPC::Message>>) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1725:9 (libxul.so+0x5009f57) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#46 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1525:3 (libxul.so+0x500a60b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#47 mozilla::ipc::MessageChannel::MessageTask::Run() /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1623:14 (libxul.so+0x500b1ae) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#48 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:539:16 (libxul.so+0x42d7a4f) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#49 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:852:26 (libxul.so+0x42d0b0d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#50 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:684:15 (libxul.so+0x42cf086) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#51 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:462:36 (libxul.so+0x42cf460) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#52 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:188:37 (libxul.so+0x42da657) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#53 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_2>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:546:5 (libxul.so+0x42da657)
#54 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1225:16 (libxul.so+0x42f121b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#55 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#56 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x50103ab) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#57 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x5010edb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#58 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#59 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#60 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#61 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x9423f56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#62 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:742:20 (libxul.so+0xbf546dc) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#63 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x5010e8d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#64 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#65 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#66 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#67 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:675:34 (libxul.so+0xbf54329) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#68 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xbf5e872) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#69 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x142da3) (BuildId: 4e33ff7caae81f8148342b4dcc6b909455226a50)
#70 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:353:18 (firefox-bin+0x142da3)
Thread T54 'DOM Worker' (tid=117065, running) created by main thread at:
#0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (firefox-bin+0xc20cd) (BuildId: 4e33ff7caae81f8148342b4dcc6b909455226a50)
#1 _PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x4948f) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
#2 PR_CreateThread /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3e2a5) (BuildId: 8c5c8c99aa8ac4fd06563cefa38dfca8e80cc54b)
#3 nsThread::Init(nsTSubstring<char> const&) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:619:18 (libxul.so+0x42ee297) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#4 mozilla::dom::WorkerThread::Create(mozilla::dom::WorkerThreadFriendKey const&) /builds/worker/checkouts/gecko/dom/workers/WorkerThread.cpp:102:7 (libxul.so+0x8e9e13b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#5 mozilla::dom::workerinternals::RuntimeService::ScheduleWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1325:37 (libxul.so+0x8e4f502) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#6 mozilla::dom::workerinternals::RuntimeService::RegisterWorker(mozilla::dom::WorkerPrivate&) /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:1207:19 (libxul.so+0x8e4e949) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#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>) /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp:2649:24 (libxul.so+0x8e7fd21) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#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:43:41 (libxul.so+0x8e5c085) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#9 mozilla::dom::Worker_Binding::_constructor(JSContext*, unsigned int, JS::Value*) /builds/worker/workspace/obj-build/dom/bindings/WorkerBinding.cpp:1164:52 (libxul.so+0x6cc036e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#10 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:459:13 (libxul.so+0xc1c7976) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#11 CallJSNativeConstructor /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:475:8 (libxul.so+0xc1c7976)
#12 InternalConstruct(JSContext*, js::AnyConstructArgs const&, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:694:10 (libxul.so+0xc1c7976)
#13 ConstructFromStack /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:722:10 (libxul.so+0xc1bc553) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#14 Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3347:16 (libxul.so+0xc1bc553)
#15 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:431:13 (libxul.so+0xc1af7ff) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#16 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:579:13 (libxul.so+0xc1c64e0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#17 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:614:10 (libxul.so+0xc1c7193) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#18 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:646:8 (libxul.so+0xc1c7193)
#19 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:117:10 (libxul.so+0xc25b3fb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#20 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+0x6f078a7) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#21 HandleEvent<mozilla::dom::EventTarget *> /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventListenerBinding.h:65:12 (libxul.so+0x78766f8) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#22 mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1308:43 (libxul.so+0x78766f8)
#23 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1504:17 (libxul.so+0x78774f2) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#24 HandleEvent /builds/worker/checkouts/gecko/dom/events/EventListenerManager.h:395:5 (libxul.so+0x786c052) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#25 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:347:17 (libxul.so+0x786c052)
#26 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:549:16 (libxul.so+0x786b424) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#27 mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:1122:11 (libxul.so+0x786e145) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#28 nsDocumentViewer::LoadComplete(nsresult) /builds/worker/checkouts/gecko/layout/base/nsDocumentViewer.cpp:1082:7 (libxul.so+0x98d32b1) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#29 nsDocShell::EndPageLoad(nsIWebProgress*, nsIChannel*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:6449:20 (libxul.so+0xb67ac2a) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#30 nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:5842:7 (libxul.so+0xb67a4a9) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#31 non-virtual thunk to nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp (libxul.so+0xb67b47b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#32 nsDocLoader::DoFireOnStateChange(nsIWebProgress*, nsIRequest*, int&, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:1380:3 (libxul.so+0x52f23ee) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#33 nsDocLoader::doStopDocumentLoad(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:978:14 (libxul.so+0x52f1adf) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#34 nsDocLoader::DocLoaderIsEmpty(bool, mozilla::Maybe<nsresult> const&) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:797:9 (libxul.so+0x52efa66) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#35 nsDocLoader::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/uriloader/base/nsDocLoader.cpp:680:5 (libxul.so+0x52f0ea9) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#36 nsDocShell::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp:13868:23 (libxul.so+0xb6995be) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#37 non-virtual thunk to nsDocShell::OnStopRequest(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp (libxul.so+0xb6997e8) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#38 mozilla::net::nsLoadGroup::NotifyRemovalObservers(nsIRequest*, nsresult) /builds/worker/checkouts/gecko/netwerk/base/nsLoadGroup.cpp:628:22 (libxul.so+0x44e0bd0) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#39 mozilla::net::nsLoadGroup::RemoveRequest(nsIRequest*, nsISupports*, nsresult) /builds/worker/checkouts/gecko/netwerk/base/nsLoadGroup.cpp:532:10 (libxul.so+0x44e2282) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#40 imgRequestProxy::RemoveFromLoadGroup() /builds/worker/checkouts/gecko/image/imgRequestProxy.cpp:394:15 (libxul.so+0x5b9881e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#41 imgRequestProxy::OnLoadComplete(bool) /builds/worker/checkouts/gecko/image/imgRequestProxy.cpp:1066:7 (libxul.so+0x5b9db62) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#42 non-virtual thunk to imgRequestProxy::OnLoadComplete(bool) /builds/worker/checkouts/gecko/image/imgRequestProxy.cpp (libxul.so+0x5b9dd02) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#43 operator() /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:356:13 (libxul.so+0x5b7ad44) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#44 void mozilla::image::ImageObserverNotifier<mozilla::image::ObserverTable const*>::operator()<void mozilla::image::SyncNotifyInternal<mozilla::image::ObserverTable const*>(mozilla::image::ObserverTable const* const&, bool, unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)::'lambda5'(mozilla::image::IProgressObserver*)>(mozilla::image::ObserverTable const*) /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:286:9 (libxul.so+0x5b7ad44)
#45 void mozilla::image::SyncNotifyInternal<mozilla::image::ObserverTable const*>(mozilla::image::ObserverTable const* const&, bool, unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:355:5 (libxul.so+0x5b7a289) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#46 operator() /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:374:5 (libxul.so+0x5b5166b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#47 Read<(lambda at /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:373:19)> /builds/worker/checkouts/gecko/image/CopyOnWrite.h:155:12 (libxul.so+0x5b5166b)
#48 mozilla::image::ProgressTracker::SyncNotifyProgress(unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) /builds/worker/checkouts/gecko/image/ProgressTracker.cpp:373:14 (libxul.so+0x5b5166b)
#49 mozilla::image::VectorImage::OnSVGDocumentLoaded() /builds/worker/checkouts/gecko/image/VectorImage.cpp:1493:23 (libxul.so+0x5b6fd88) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#50 mozilla::image::SVGLoadEventListener::HandleEvent(mozilla::dom::Event*) /builds/worker/checkouts/gecko/image/VectorImage.cpp:213:13 (libxul.so+0x5b72449) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#51 mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1314:22 (libxul.so+0x787670e) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#52 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) /builds/worker/checkouts/gecko/dom/events/EventListenerManager.cpp:1504:17 (libxul.so+0x7877521) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#53 HandleEvent /builds/worker/checkouts/gecko/dom/events/EventListenerManager.h:395:5 (libxul.so+0x786c052) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#54 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:347:17 (libxul.so+0x786c052)
#55 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:549:16 (libxul.so+0x786b424) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#56 mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp:1122:11 (libxul.so+0x786e145) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#57 mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) /builds/worker/checkouts/gecko/dom/events/EventDispatcher.cpp (libxul.so+0x7871320) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#58 nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) /builds/worker/checkouts/gecko/dom/base/nsINode.cpp:1373:17 (libxul.so+0x5ffe728) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#59 mozilla::dom::EventTarget::DispatchEvent(mozilla::dom::Event&) /builds/worker/checkouts/gecko/dom/events/EventTarget.cpp:180:13 (libxul.so+0x787ee86) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#60 mozilla::AsyncEventDispatcher::Run() /builds/worker/checkouts/gecko/dom/events/AsyncEventDispatcher.cpp:69:12 (libxul.so+0x78268a1) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#61 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:539:16 (libxul.so+0x42d7a4f) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#62 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:852:26 (libxul.so+0x42d0b0d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#63 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:684:15 (libxul.so+0x42cf086) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#64 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:462:36 (libxul.so+0x42cf460) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#65 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:188:37 (libxul.so+0x42da657) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#66 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_2>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:546:5 (libxul.so+0x42da657)
#67 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1225:16 (libxul.so+0x42f121b) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#68 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:477:10 (libxul.so+0x42f7de6) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#69 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x50103ab) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#70 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:268:30 (libxul.so+0x5010edb) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#71 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#72 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#73 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#74 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x9423f56) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#75 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:742:20 (libxul.so+0xbf546dc) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#76 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:235:9 (libxul.so+0x5010e8d) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#77 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4f29b17) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#78 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4f29b17)
#79 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4f29b17)
#80 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:675:34 (libxul.so+0xbf54329) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#81 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xbf5e872) (BuildId: 67af6b114b570865de7dd242a5064efdec6712c5)
#82 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:57:28 (firefox-bin+0x142da3) (BuildId: 4e33ff7caae81f8148342b4dcc6b909455226a50)
#83 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:353:18 (firefox-bin+0x142da3)
Comment 1•2 years ago
|
||
This looks like a race on the local static initialized
in GetExtensionName
.
Comment 2•2 years ago
|
||
It looks like this is guarding the initialization of sExtensionNamesEnumeratedArray, which seems to map enums to strings. It isn't clear to me why this isn't a static array. That would also save us a small amount of content process overhead.
Comment 3•2 years ago
|
||
This happens early enough, and races are unreliable, that it would be very hard to exploit this even if it happened. This looks like a once-per-content-process race so you'd have to have a lot of sites to have crack at it.
Comment 4•2 years ago
|
||
The severity field is not set for this bug.
:jgilbert, could you have a look please?
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 5•1 year ago
|
||
This is safe but easy to fix.
Assignee | ||
Comment 6•1 year ago
|
||
We could do non-racy static init here (e.g. with a static initializer
self-calling-closure), but there doesn't seem to be a strong reason for
this. Let's just use a switch and get robustness from -Werror=switch.
Assignee | ||
Comment 7•1 year ago
|
||
Comment on attachment 9352799 [details]
Bug 1819497 - Don't race on static bool for initialization.
Security Approval Request
- How easily could an exploit be constructed based on the patch?: Very hard, and you only get one shot at it per process.
I don't think this is exploitable. - Do comments in the patch, the check-in comment, or tests included in the patch paint a bulls-eye on the security problem?: Yes
- Which older supported branches are affected by this flaw?: all
- If not all supported branches, which bug introduced the flaw?: None
- Do you have backports for the affected branches?: No
- If not, how different, hard to create, and risky will they be?: They should be trivial to make, if needed.
- How likely is this patch to cause regressions; how much testing does it need?: CI would catch this.
- Is Android affected?: Yes
Comment 8•1 year ago
|
||
Comment on attachment 9352799 [details]
Bug 1819497 - Don't race on static bool for initialization.
As a sec-low, this does not need sec-approval prior to landing.
Comment 10•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Reporter | ||
Updated•1 year ago
|
Comment 11•5 months ago
|
||
Bulk-unhiding security bugs fixed in Firefox 119-121 (Fall 2023). Use "moo-doctrine-subsidy" to filter
Description
•