Closed Bug 1652107 Opened 4 years ago Closed 4 years ago

ThreadSanitizer: data race [@ HasFlag] vs [@ SetFlags]

Categories

(Core :: Layout, defect)

defect

Tracking

()

RESOLVED INVALID

People

(Reporter: bwc, Unassigned)

References

(Blocks 1 open bug)

Details

0:20.05 GECKO(12642) WARNING: ThreadSanitizer: data race (pid=12642)
0:20.05 GECKO(12642) Read of size 4 at 0x7b200012fe98 by main thread:
0:20.05 GECKO(12642) #0 HasFlag /home/bcampen/checkouts/mozilla-central/dom/base/nsWrapperCache.h:259:15 (libxul.so+0x7bed295)
0:20.05 GECKO(12642) #1 IsRootOfNativeAnonymousSubtree /home/bcampen/checkouts/mozilla-central/dom/base/nsINode.h:1390:12 (libxul.so+0x7bed295)
0:20.05 GECKO(12642) #2 GetFlattenedTreeParentNode<nsINode::eForStyle> /home/bcampen/checkouts/mozilla-central/dom/base/nsIContentInlines.h:90:16 (libxul.so+0x7bed295)
0:20.05 GECKO(12642) #3 nsINode::GetFlattenedTreeParentNodeForStyle() const /home/bcampen/checkouts/mozilla-central/dom/base/nsIContentInlines.h:143:10 (libxul.so+0x7bed295)
0:20.05 GECKO(12642) #4 GetFlattenedTreeParentElementForStyle /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/ElementInlines.h:40:25 (libxul.so+0x7d86e47)
0:20.05 GECKO(12642) #5 mozilla::dom::NoteDirtyElement(mozilla::dom::Element*, unsigned int) /home/bcampen/checkouts/mozilla-central/dom/base/Element.cpp:4195:41 (libxul.so+0x7d86e47)
0:20.05 GECKO(12642) #6 mozilla::dom::Element::NoteDirtyForServo() /home/bcampen/checkouts/mozilla-central/dom/base/Element.cpp:4259:3 (libxul.so+0x7d86f6e)
0:20.05 GECKO(12642) #7 mozilla::RestyleManager::SnapshotFor(mozilla::dom::Element&) /home/bcampen/checkouts/mozilla-central/layout/base/RestyleManager.cpp:2926:12 (libxul.so+0xa693186)
0:20.05 GECKO(12642) #8 mozilla::RestyleManager::TakeSnapshotForAttributeChange(mozilla::dom::Element&, int, nsAtom*) /home/bcampen/checkouts/mozilla-central/layout/base/RestyleManager.cpp:3287:36 (libxul.so+0xa6944f0)
0:20.05 GECKO(12642) #9 AttributeWillChange /home/bcampen/checkouts/mozilla-central/layout/base/RestyleManager.cpp:3254:3 (libxul.so+0xa675d0e)
0:20.05 GECKO(12642) #10 mozilla::PresShell::AttributeWillChange(mozilla::dom::Element*, int, nsAtom*, int) /home/bcampen/checkouts/mozilla-central/layout/base/PresShell.cpp:4350:37 (libxul.so+0xa675d0e)
0:20.05 GECKO(12642) #11 mozilla::dom::MutationObservers::NotifyAttributeWillChange(mozilla::dom::Element*, int, nsAtom*, int) /home/bcampen/checkouts/mozilla-central/dom/base/MutationObservers.cpp:151:3 (libxul.so+0x7dd2b56)
0:20.05 GECKO(12642) #12 mozilla::dom::Element::SetAttr(int, nsAtom*, nsAtom*, nsTSubstring<char16_t> const&, nsIPrincipal*, bool) /home/bcampen/checkouts/mozilla-central/dom/base/Element.cpp:2205:5 (libxul.so+0x7d7b1d5)
0:20.05 GECKO(12642) #13 SetAttr /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/Element.h:893:12 (libxul.so+0x7d7af0f)
0:20.05 GECKO(12642) #14 mozilla::dom::Element::SetAttribute(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsIPrincipal*, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/dom/base/Element.cpp:1291:14 (libxul.so+0x7d7af0f)
0:20.05 GECKO(12642) #15 mozilla::dom::Element_Binding::setAttribute(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/ElementBinding.cpp:1345:24 (libxul.so+0x8bf77d7)
0:20.05 GECKO(12642) #16 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/dom/bindings/BindingUtils.cpp:3219:13 (libxul.so+0x8ef45bd)
0:20.05 GECKO(12642) #17 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc88f720)
0:20.05 GECKO(12642) #18 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc88f720)
0:20.05 GECKO(12642) #19 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc88488b)
0:20.05 GECKO(12642) #20 CallFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:643:10 (libxul.so+0xc88488b)
0:20.05 GECKO(12642) #21 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3332:16 (libxul.so+0xc88488b)
0:20.05 GECKO(12642) #22 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc877346)
0:20.05 GECKO(12642) #23 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc890111)
0:20.05 GECKO(12642) #24 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc890c00)
0:20.05 GECKO(12642) #25 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc890c00)
0:20.06 GECKO(12642) #26 js::jit::InvokeFunction(JSContext*, JS::Handle<JSObject*>, bool, bool, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:269:10 (libxul.so+0xd27e7c0)
0:20.06 GECKO(12642) #27 js::jit::InvokeFromInterpreterStub(JSContext*, js::jit::InterpreterStubExitFrameLayout*) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:289:8 (libxul.so+0xd27ecbf)
0:20.06 GECKO(12642) #28 <null> <null> (0x7f8ac5f20ed4)
0:20.06 GECKO(12642) #29 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3378:40 (libxul.so+0xc885024)
0:20.06 GECKO(12642) #30 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc877346)
0:20.06 GECKO(12642) #31 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc890111)
0:20.06 GECKO(12642) #32 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc890c00)
0:20.06 GECKO(12642) #33 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc890c00)
0:20.06 GECKO(12642) #34 Call /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.h:104:10 (libxul.so+0xcac2ada)
0:20.06 GECKO(12642) #35 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/js/src/builtin/Promise.cpp:1902:10 (libxul.so+0xcac2ada)
0:20.06 GECKO(12642) #36 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc88f720)
0:20.06 GECKO(12642) #37 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc88f720)
0:20.06 GECKO(12642) #38 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc890c00)
0:20.06 GECKO(12642) #39 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc890c00)
0:20.06 GECKO(12642) #40 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jsapi.cpp:2846:10 (libxul.so+0xc96c321)
0:20.06 GECKO(12642) #41 mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:28:8 (libxul.so+0x83de0b0)
0:20.06 GECKO(12642) #42 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x5d2ac32)
0:20.06 GECKO(12642) #43 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104:12 (libxul.so+0x5d2ac32)
0:20.06 GECKO(12642) #44 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:209:18 (libxul.so+0x5d2ac32)
0:20.06 GECKO(12642) #45 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:644:17 (libxul.so+0x5d0ef69)
0:20.06 GECKO(12642) #46 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:459:3 (libxul.so+0x5d0f441)
0:20.06 GECKO(12642) #47 XPCJSContext::AfterProcessTask(unsigned int) /home/bcampen/checkouts/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1363:28 (libxul.so+0x702a81f)
0:20.06 GECKO(12642) #48 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1271:24 (libxul.so+0x5e2c203)
0:20.06 GECKO(12642) #49 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:513:10 (libxul.so+0x5e309e5)
0:20.06 GECKO(12642) #50 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x690953a)
0:20.06 GECKO(12642) #51 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x683daac)
0:20.06 GECKO(12642) #52 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x683daac)
0:20.06 GECKO(12642) #53 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x683daac)
0:20.06 GECKO(12642) #54 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa386675)
0:20.06 GECKO(12642) #55 nsAppStartup::Run() /home/bcampen/checkouts/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:270:30 (libxul.so+0xc5b6114)
0:20.06 GECKO(12642) #56 XREMain::XRE_mainRun() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4719:22 (libxul.so+0xc6eac51)
0:20.06 GECKO(12642) #57 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4868:8 (libxul.so+0xc6eb773)
0:20.06 GECKO(12642) #58 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4922:21 (libxul.so+0xc6ebb0a)
0:20.06 GECKO(12642) #59 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xc6f7bc7)
0:20.06 GECKO(12642) #60 do_main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:217:22 (firefox+0x111af3)
0:20.06 GECKO(12642) #61 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:331:16 (firefox+0x111af3)
0:20.07 GECKO(12642) Previous write of size 4 at 0x7b200012fe98 by thread T49:
0:20.07 GECKO(12642) #0 SetFlags /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsWrapperCache.h:276:12 (libxul.so+0xa59ed02)
0:20.07 GECKO(12642) #1 SetFlags /home/bcampen/checkouts/mozilla-central/dom/base/nsINode.h:1271:21 (libxul.so+0xa59ed02)
0:20.07 GECKO(12642) #2 Gecko_SetNodeFlags /home/bcampen/checkouts/mozilla-central/layout/style/GeckoBindings.cpp:274:32 (libxul.so+0xa59ed02)
0:20.07 GECKO(12642) #3 _$LT$style..gecko..wrapper..GeckoElement$u20$as$u20$style..dom..TElement$GT$::set_dirty_descendants::h1c6fa745054c1992 /home/bcampen/checkouts/mozilla-central/servo/components/style/gecko/wrapper.rs:1347:9 (libxul.so+0xf55bf79)

Blocks: tsan

Likely invalid, because the build used for this missed rust code instrumentation.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.