Intermittent SUMMARY: ThreadSanitizer: data race /builds/worker/checkouts/gecko/js/src/jsapi.cpp:3093:20 in PropertySpecNameToId(JSContext*, JSPropertySpec::Name, JS::MutableHandle<JS::PropertyKey>, js::PinningBehavior)
Categories
(Core :: Networking, defect)
Tracking
()
People
(Reporter: intermittent-bug-filer, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: intermittent-failure, Whiteboard: [stockwell unknown])
Filed by: rmaries [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=305607160&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/BrgdwBxhQ7iQ1528yc11iw/runs/0/artifacts/public/logs/live_backing.log
[task 2020-06-09T11:09:30.245Z] 11:09:30 INFO - TEST-START | dom/network/tests/test_tcpsocket_not_exposed_to_content.html
[task 2020-06-09T11:09:59.333Z] 11:09:59 INFO - GECKO(2157) | #29 JSAtom* AtomizeUTF8OrWTF8Chars<JS::UTF8Chars>(JSContext*, char const*, unsigned long) /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:1088:10 (libc.so.6+0x21b96)
[task 2020-06-09T11:09:59.334Z] 11:09:59 INFO - GECKO(2157) | SUMMARY: ThreadSanitizer: data race /builds/worker/checkouts/gecko/js/src/jsapi.cpp:3093:20 in PropertySpecNameToId(JSContext*, JSPropertySpec::Name, JS::MutableHandle<JS::PropertyKey>, js::PinningBehavior)
[task 2020-06-09T11:09:59.334Z] 11:09:59 INFO - GECKO(2157) | ==================
[task 2020-06-09T11:09:59.354Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.354Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.355Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.355Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.355Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.355Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.357Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv
[task 2020-06-09T11:09:59.636Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x390130,name=PContent::Msg_AsyncMessage) Channel error: cannot send/recv
[task 2020-06-09T11:09:59.637Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x390037,name=PContent::Msg_AddPermission) Channel error: cannot send/recv
[task 2020-06-09T11:09:59.637Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x390037,name=PContent::Msg_AddPermission) Channel error: cannot send/recv
[task 2020-06-09T11:09:59.637Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x390037,name=PContent::Msg_AddPermission) Channel error: cannot send/recv
[task 2020-06-09T11:09:59.652Z] 11:09:59 INFO - GECKO(2157) | ###!!! [Parent][MessageChannel] Error: (msgtype=0x390130,name=PContent::Msg_AsyncMessage) Channel error: cannot send/recv
[task 2020-06-09T11:09:59.660Z] 11:09:59 ERROR - GECKO(2157) | A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
[task 2020-06-09T11:10:02.837Z] 11:10:02 INFO - GECKO(2157) | console.warn: SearchService: "_init: abandoning init due to shutting down"
Comment hidden (Intermittent Failures Robot) |
Comment 4•5 years ago
|
||
This is a frequent. Ted, Zibi, does this ring a bell?
WARNING: ThreadSanitizer: data race (pid=4091)
Write of size 8 at 0x7f675beb5b60 by main thread (mutexes: write M3274):
#0 PropertySpecNameToId(JSContext*, JSPropertySpec::Name, JS::MutableHandle<JS::PropertyKey>, js::PinningBehavior) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:3093:20 (libxul.so+0x67d2c60)
#1 JS::PropertySpecNameToPermanentId(JSContext*, JSPropertySpec::Name, JS::PropertyKey*) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:3109:10 (libxul.so+0x665796c)
#2 InitIdsInternal<const JSFunctionSpec> /builds/worker/checkouts/gecko/dom/bindings/BindingUtils.cpp:1261:12 (libxul.so+0x6657aca)
#3 mozilla::dom::InitIds(JSContext*, mozilla::dom::NativePropertiesN<7> const*) /builds/worker/checkouts/gecko/dom/bindings/BindingUtils.cpp:1290:3 (libxul.so+0x6657aca)
#4 mozilla::dom::FluentBundle_Binding::CreateInterfaceObjects(JSContext*, JS::Handle<JSObject*>, mozilla::dom::ProtoAndIfaceCache&, bool) /builds/worker/workspace/obj-build/dom/bindings/FluentBinding.cpp:1729:10 (libxul.so+0x34f55e6)
#5 mozilla::dom::GetPerInterfaceObjectHandle(JSContext*, unsigned long, void ()(JSContext, JS::Handle<JSObject*>, mozilla::dom::ProtoAndIfaceCache&, bool), bool) /builds/worker/checkouts/gecko/dom/bindings/BindingUtils.cpp:4209:5 (libxul.so+0x32c4ca6)
#6 mozilla::dom::WebIDLGlobalNameHash::ResolveForSystemGlobal(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::PropertyKey>, bool*) /builds/worker/checkouts/gecko/dom/bindings/WebIDLGlobalNameHash.cpp:230:9 (libxul.so+0x34fd481)
#7 Resolve /builds/worker/checkouts/gecko/js/xpconnect/src/XPCRuntimeService.cpp:67:7 (libxul.so+0x35070f5)
#8 non-virtual thunk to BackstagePass::Resolve(nsIXPConnectWrappedNative*, JSContext*, JSObject*, JS::PropertyKey, bool*, bool*) /builds/worker/checkouts/gecko/js/xpconnect/src/XPCRuntimeService.cpp (libxul.so+0x35070f5)
#9 XPC_WN_Helper_Resolve(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::PropertyKey>, bool*) /builds/worker/checkouts/gecko/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:789:15 (libxul.so+0x19433fb)
#10 CallResolveOp /builds/worker/checkouts/gecko/js/src/vm/NativeObject-inl.h:641:8 (libxul.so+0x196851f)
#11 LookupOwnPropertyInline<js::CanGC> /builds/worker/checkouts/gecko/js/src/vm/NativeObject-inl.h:723:12 (libxul.so+0x196851f)
#12 LookupPropertyInline<js::CanGC> /builds/worker/checkouts/gecko/js/src/vm/NativeObject-inl.h:793:10 (libxul.so+0x196851f)
#13 js::LookupProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::PropertyKey>, JS::MutableHandle<JSObject*>, JS::MutableHandle<JS::PropertyResult>) /builds/worker/checkouts/gecko/js/src/vm/JSObject.cpp:2151:10 (libxul.so+0x196851f)
#14 js::LookupName(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JSObject*>, JS::MutableHandle<JSObject*>, JS::MutableHandle<JSObject*>, JS::MutableHandle<JS::PropertyResult>) /builds/worker/checkouts/gecko/js/src/vm/JSObject.cpp:2162:10 (libxul.so+0x682e49c)
#15 bool js::GetEnvironmentName<(js::GetNameMode)0>(JSContext*, JS::Handle<JSObject*>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/Interpreter-inl.h:214:8 (libxul.so+0x682eb4d)
#16 GetNameOperation /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:243:10 (libxul.so+0x65ad3bd)
#17 Interpret(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:3438:12 (libxul.so+0x65ad3bd)
#18 js::RunScript(JSContext*, js::RunState&) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:458:10 (libxul.so+0x6590221)
#19 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:613:13 (libxul.so+0x658167f)
#20 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:641:10 (libxul.so+0x659a646)
#21 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:658:8 (libxul.so+0x659a646)
#22 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:1678:10 (libxul.so+0x659b0fb)
#23 js::AsyncGeneratorResume(JSContext*, JS::Handle<js::AsyncGeneratorObject*>, js::CompletionKind, JS::Handle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/AsyncIteration.cpp:393:8 (libxul.so+0x68e8f75)
#24 js::AsyncGeneratorAwaitedFulfilled(JSContext*, JS::Handle<js::AsyncGeneratorObject*>, JS::Handle<JS::Value>) /builds/worker/checkouts/gecko/js/src/vm/AsyncIteration.cpp:33:10 (libxul.so+0x66d897f)
#25 AsyncGeneratorPromiseReactionJob /builds/worker/checkouts/gecko/js/src/builtin/Promise.cpp:1723:14 (libxul.so+0x66d8807)
#26 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /builds/worker/checkouts/gecko/js/src/builtin/Promise.cpp:1859:12 (libxul.so+0x66d8807)
#27 CallJSNative /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:486:13 (libxul.so+0x6793a00)
#28 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:578:12 (libxul.so+0x6793a00)
#29 InternalCall /builds/worker/checkouts/gecko/js/src/vm/Interpreter.cpp:641:10 (libxul.so+0x6599c99)
#30 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:658:8 (libxul.so+0x6599c99)
#31 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:2842:10 (libxul.so+0x659b0fb)
#32 mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/PromiseBinding.cpp:28:8 (libxul.so+0x6655dae)
#33 Call /builds/worker/workspace/obj-build/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x2b1c5fb)
#34 Call /builds/worker/workspace/obj-build/dist/include/mozilla/dom/PromiseBinding.h:104:12 (libxul.so+0x2b1c5fb)
#35 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:209:18 (libxul.so+0x2b1c5fb)
#36 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:640:17 (libxul.so+0xa2c7fe)
#37 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:459:3 (libxul.so+0xa1a8d7)
#38 XPCJSContext::AfterProcessTask(unsigned int) /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1360:28 (libxul.so+0xa1b207)
#39 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1265:24 (libxul.so+0x193285a)
#40 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:501:10 (libxul.so+0xb167a1)
#41 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0xb1b012)
#42 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x13e4ae9)
#43 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:315:10 (libxul.so+0x13e54fb)
#44 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:308:3 (libxul.so+0x13e54fb)
#45 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:290:3 (libxul.so+0x13e54fb)
#46 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x1370bfc)
#47 XRE_RunAppShell() /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0x486c553)
#48 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x646c489)
#49 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:315:10 (libxul.so+0x13e54aa)
#50 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:308:3 (libxul.so+0x13e54aa)
#51 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:290:3 (libxul.so+0x13e54aa)
#52 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0x1370bfc)
#53 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x646c209)
#54 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (libxul.so+0x64742d2)
#55 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:303:18 (libxul.so+0x64742d2)
#56 __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 (firefox+0xca0c7)
#57 posix_memalign /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:840:3 (libc.so.6+0x21b96)
Previous read of size 8 at 0x7f675beb5b60 by thread T8:
#0 js::AtomizeUTF8Chars(JSContext*, char const*, unsigned long) /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:1094:10 (libxul.so+0x67e6d00)
#1 atomizeSourceChars /builds/worker/checkouts/gecko/js/src/frontend/TokenStream.h:1696:10 (libxul.so+0x67e6675)
#2 js::frontend::TokenStreamSpecific<mozilla::Utf8Unit, js::frontend::ParserAnyCharsAccess<js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit> > >::identifierName(js::frontend::TokenStart, mozilla::Utf8Unit const*, js::frontend::IdentifierEscapes, js::frontend::Token::Modifier, js::frontend::NameVisibility, js::frontend::TokenKind*) /builds/worker/checkouts/gecko/js/src/frontend/TokenStream.cpp:2250:12 (libxul.so+0x67e6675)
#3 js::frontend::TokenStreamSpecific<mozilla::Utf8Unit, js::frontend::ParserAnyCharsAccess<js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit> > >::getTokenInternal(js::frontend::TokenKind*, js::frontend::Token::Modifier) /builds/worker/checkouts/gecko/js/src/frontend/TokenStream.cpp (libxul.so+0x6ca51cc)
#4 getToken /builds/worker/checkouts/gecko/js/src/frontend/TokenStream.h:2630:12 (libxul.so+0x6ca2f8d)
#5 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::memberExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, bool, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9447:24 (libxul.so+0x6ca2f8d)
#6 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::optionalExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9011:14 (libxul.so+0x6baf9d2)
#7 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::unaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9206:19 (libxul.so+0x6bae570)
#8 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::orExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8498:10 (libxul.so+0x6badcd0)
#9 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::condExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8610:20 (libxul.so+0x6bad3de)
#10 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8760:11 (libxul.so+0x6bad06e)
#11 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::expr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8342:13 (libxul.so+0x6ba5fcf)
#12 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::expressionStatement(js::frontend::YieldHandling, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:5796:17 (libxul.so+0x6b93245)
#13 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::statementListItem(js::frontend::YieldHandling, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp (libxul.so+0x6b959a4)
#14 js::frontend::GeneralParser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::statementList(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3780:17 (libxul.so+0x6b94f8e)
#15 js::frontend::Parser<js::frontend::FullParseHandler, mozilla::Utf8Unit>::globalBody(js::frontend::GlobalSharedContext*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:1488:20 (libxul.so+0x6b91609)
#16 js::frontend::ScriptCompiler<mozilla::Utf8Unit>::compileScript(js::frontend::CompilationInfo&, js::frontend::SharedContext*) /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:467:20 (libxul.so+0x6c28933)
#17 CreateGlobalScript<mozilla::Utf8Unit> /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:188:17 (libxul.so+0x6c6778c)
#18 js::frontend::CompileGlobalScript(js::frontend::CompilationInfo&, js::frontend::GlobalSharedContext&, JS::SourceText<mozilla::Utf8Unit>&) /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:230:10 (libxul.so+0x6c6778c)
#19 ScriptParseTask<mozilla::Utf8Unit>::parse(JSContext*) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:602:7 (libxul.so+0x6c3bc5d)
#20 js::ParseTask::runTask() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:554:3 (libxul.so+0x675f764)
#21 js::HelperThread::handleParseWorkload(js::AutoLockHelperThreadState&) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2238:11 (libxul.so+0x674eafe)
#22 js::HelperThread::threadLoop() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2532:5 (libxul.so+0x6757666)
#23 js::HelperThread::ThreadMain(void*) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2050:11 (libxul.so+0x6756467)
#24 callMain<0> /builds/worker/checkouts/gecko/js/src/threading/Thread.h:217:5 (libxul.so+0x675285d)
#25 js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) /builds/worker/checkouts/gecko/js/src/threading/Thread.h:206:11 (libxul.so+0x675285d)
#26 __tsan_thread_start_func /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:957:15 (libxul.so+0x675fd70)
#27 pthread_mutex_init /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1225:3 (firefox+0x5843c)
Mutex M3274 (0x7b1400026020) created at:
#0 mozilla::detail::MutexImpl::MutexImpl() /builds/worker/checkouts/gecko/mozglue/misc/Mutex_posix.cpp:96:3 (firefox+0x599bd)
#1 MutexImpl /builds/worker/checkouts/gecko/js/src/threading/Mutex.h:39:17 (firefox+0x12a622)
#2 Mutex /builds/worker/checkouts/gecko/js/src/threading/Mutex.h:60:12 (firefox+0x12a622)
#3 Partition /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:350:7 (firefox+0x12a622)
#4 js_new<js::AtomsTable::Partition, unsigned long &> /builds/worker/workspace/obj-build/dist/include/js/Utility.h:537:1 (firefox+0x12a622)
#5 init /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:365:21 (firefox+0x12a622)
#6 JSRuntime::initMainAtomsTables(JSContext*) /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:643:28 (firefox+0x12a622)
#7 JS::InitSelfHostedCode(JSContext*) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:477:34 (libxul.so+0x67d5ba8)
#8 XPCJSContext::Initialize() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1293:8 (libxul.so+0x6648361)
#9 XPCJSContext::NewXPCJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1329:23 (libxul.so+0x1931ff3)
#10 nsXPConnect::InitJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:80:25 (libxul.so+0x19326f7)
#11 xpc::InitializeJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:98:35 (libxul.so+0x196c543)
#12 NS_InitXPCOM /builds/worker/checkouts/gecko/xpcom/build/XPCOMInit.cpp:491:5 (libxul.so+0x196c5ff)
#13 XRE_InitEmbedding2(nsIFile*, nsIFile*, nsIDirectoryServiceProvider*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:197:8 (libxul.so+0xb4a89e)
#14 mozilla::ipc::ScopedXREEmbed::Start() /builds/worker/checkouts/gecko/ipc/glue/ScopedXREEmbed.cpp (libxul.so+0x646b9b4)
#15 mozilla::dom::ContentProcess::Init(int, char**) /builds/worker/checkouts/gecko/dom/ipc/ContentProcess.cpp:181:13 (libxul.so+0x13f14a3)
#16 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:710:21 (libxul.so+0x4431773)
#17 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x646c1e2)
#18 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (libxul.so+0x64742d2)
#19 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:303:18 (libxul.so+0x64742d2)
#20 __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 (firefox+0xca0c7)
#21 setFlagBit /builds/worker/checkouts/gecko/js/src/gc/Cell.h:599:45 (libc.so.6+0x21b96)
#22 setFlagBit /builds/worker/checkouts/gecko/js/src/vm/StringType.h:588:44 (libc.so.6+0x21b96)
#23 setPinned /builds/worker/checkouts/gecko/js/src/vm/StringType.h:1146:5 (libc.so.6+0x21b96)
#24 atomizeAndCopyChars<const unsigned char > /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:787:13 (libc.so.6+0x21b96)
#25 AtomizeAndCopyCharsFromLookup<const unsigned char > /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:721:30 (libc.so.6+0x21b96)
#26 AtomizeAndCopyChars<unsigned char> /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:821:10 (libc.so.6+0x21b96)
#27 js::Atomize(JSContext, char const, unsigned long, js::PinningBehavior, mozilla::Maybe<unsigned int> const&) /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:1019:10 (libc.so.6+0x21b96)
Thread T8 'JS Helper' (tid=4114, running) created by main thread at:
#0 js::Thread::create(void* ()(void), void*) /builds/worker/checkouts/gecko/js/src/threading/posix/PosixThread.cpp:52:7 (firefox+0x584db)
#1 bool js::Thread::init<void (&)(void*), js::HelperThread*>(void (&)(void*), js::HelperThread*&&) /builds/worker/checkouts/gecko/js/src/threading/Thread.h:90:12 (libxul.so+0x66b93b1)
#2 js::GlobalHelperThreadState::ensureInitialized() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:1160:27 (libxul.so+0x6752772)
#3 js::EnsureHelperThreadsInitialized() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:94:30 (libxul.so+0x674d36a)
#4 JSRuntime::init(JSContext*, unsigned int) /builds/worker/checkouts/gecko/js/src/vm/Runtime.cpp:200:32 (libxul.so+0x674cfb2)
#5 js::NewContext(unsigned int, JSRuntime*) /builds/worker/checkouts/gecko/js/src/vm/JSContext.cpp:182:17 (libxul.so+0x68c40c2)
#6 JS_NewContext(unsigned int, JSRuntime*) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:394:10 (libxul.so+0x67f5eaf)
#7 mozilla::CycleCollectedJSContext::Initialize(JSRuntime*, unsigned int) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:123:16 (libxul.so+0x6648074)
#8 XPCJSContext::Initialize() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1133:32 (libxul.so+0xa1975b)
#9 XPCJSContext::NewXPCJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1329:23 (libxul.so+0x1931aea)
#10 nsXPConnect::InitJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:80:25 (libxul.so+0x19326f7)
#11 xpc::InitializeJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:98:35 (libxul.so+0x196c543)
#12 NS_InitXPCOM /builds/worker/checkouts/gecko/xpcom/build/XPCOMInit.cpp:491:5 (libxul.so+0x196c5ff)
#13 XRE_InitEmbedding2(nsIFile*, nsIFile*, nsIDirectoryServiceProvider*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:197:8 (libxul.so+0xb4a89e)
#14 mozilla::ipc::ScopedXREEmbed::Start() /builds/worker/checkouts/gecko/ipc/glue/ScopedXREEmbed.cpp (libxul.so+0x646b9b4)
#15 mozilla::dom::ContentProcess::Init(int, char**) /builds/worker/checkouts/gecko/dom/ipc/ContentProcess.cpp:181:13 (libxul.so+0x13f14a3)
#16 XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/nsEmbedFunctions.cpp:710:21 (libxul.so+0x4431773)
#17 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0x646c1e2)
#18 content_process_main /builds/worker/checkouts/gecko/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (libxul.so+0x64742d2)
#19 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:303:18 (libxul.so+0x64742d2)
#20 __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 (firefox+0xca0c7)
#21 lengthField /builds/worker/checkouts/gecko/js/src/gc/Cell.h:593:21 (libc.so.6+0x21b96)
#22 length /builds/worker/checkouts/gecko/js/src/vm/StringType.h:393:42 (libc.so.6+0x21b96)
#23 match /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:129:12 (libc.so.6+0x21b96)
#24 match /builds/worker/workspace/obj-build/dist/include/mozilla/HashTable.h:1716:12 (libc.so.6+0x21b96)
#25 lookup<mozilla::detail::HashTable<const js::AtomStateEntry, mozilla::HashSet<js::AtomStateEntry, js::AtomHasher, js::SystemAllocPolicy>::SetHashPolicy, js::SystemAllocPolicy>::ForAdd> /builds/worker/workspace/obj-build/dist/include/mozilla/HashTable.h:1772:39 (libc.so.6+0x21b96)
#26 lookupForAdd /builds/worker/workspace/obj-build/dist/include/mozilla/HashTable.h:2085:19 (libc.so.6+0x21b96)
#27 lookupForAdd /builds/worker/workspace/obj-build/dist/include/mozilla/HashTable.h:601:18 (libc.so.6+0x21b96)
#28 AtomizeAndCopyCharsFromLookup<const AtomizeUTF8OrWTF8CharsWrapper<JS::UTF8Chars> > /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:684:39 (libc.so.6+0x21b96)
#29 AtomizeAndCopyCharsFromLookup<AtomizeUTF8OrWTF8CharsWrapper<JS::UTF8Chars>, void> /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:656:10 (libc.so.6+0x21b96)
#30 JSAtom AtomizeUTF8OrWTF8Chars<JS::UTF8Chars>(JSContext*, char const*, unsigned long) /builds/worker/checkouts/gecko/js/src/vm/JSAtom.cpp:1088:10 (libc.so.6+0x21b96)
SUMMARY: ThreadSanitizer: data race /builds/worker/checkouts/gecko/js/src/jsapi.cpp:3093:20 in PropertySpecNameToId(JSContext*, JSPropertySpec::Name, JS::MutableHandle<JS::PropertyKey>, js::PinningBehavior)
Comment 5•5 years ago
|
||
What I think I see happening: on the main thread, we're atomizing and pinning some chars. We don't look in the cache because we're going to pin, we lock the relevant partition, and lookup the atom and write into it to pin it (still with the lock held).
An offthread parse looks up the same atom but does not want to pin it, finds it in the zone cache, so accesses it without locking.
I don't understand the setup well enough to suggest a solution.
Comment 6•5 years ago
|
||
It does not. I'm not familiar with this code at all, and I think that FluentBundle
is just triggering that error.
If there's anything to fix in FluentBundle
, I'd like to know what's the IDL change we need to apply.
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 10•5 years ago
|
||
(In reply to Steve Fink [:sfink] [:s:] from comment #5)
That sounds like the problem. The atom's flags are updated with the lock held to mark it as pinned, but are also read without the lock.
I don't think this is a serious problem (the read doesn't pay attention to the pinned flag) and it will go away when stencil lands. We should probably just suppress this.
Updated•5 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 15•2 months ago
|
||
Clearing old pending NI - the bug was fixed 4 years ago and it seemed the question was answered in comment 6.
Description
•