Open Bug 1284420 Opened 8 years ago Updated 2 years ago

Assertion failure: !mParentSuspended when opening web console at:WorkerPrivate.cpp with sharedworker

Categories

(Core :: DOM: Workers, defect, P5)

defect

Tracking

()

People

(Reporter: tt, Unassigned)

Details

I run the test [1] test_messageChannel_sharedWorker2.html with debug build. Then, I opened the web console and it hit the assertion. I also hit the same assertion when I try to new two sharedworker(one in iframe, and the other in original document) with same script. The error message is as following. Assertion failure: !mParentSuspended (Suspended more than once!), at /Volumes/workplace/minbound/dom/workers/WorkerPrivate.cpp:2821 #01: mozilla::dom::workers::WorkerPrivateParent<mozilla::dom::workers::WorkerPrivate>::Suspend() (WorkerPrivate.cpp:2821, in XUL) #02: mozilla::dom::workers::RuntimeService::SuspendWorkersForWindow(nsPIDOMWindowInner*) (RuntimeService.cpp:2092, in XUL) #03: mozilla::dom::workers::SuspendWorkersForWindow(nsPIDOMWindowInner*) (RuntimeService.cpp:1189, in XUL) #04: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:12996, in XUL) #05: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:12975, in XUL) #06: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:13048, in XUL) #07: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:12975, in XUL) #08: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:13048, in XUL) #09: nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:12975, in XUL) #10: non-virtual thunk to nsGlobalWindow::SuspendTimeouts(unsigned int, bool, bool) (nsGlobalWindow.cpp:12971, in XUL) #11: nsDOMWindowUtils::SuspendTimeouts() (nsDOMWindowUtils.cpp:2236, in XUL) #12: NS_InvokeByIndex (xptcinvoke_x86_64_unix.cpp:180, in XUL) #13: CallMethodHelper::Invoke() (XPCWrappedNative.cpp:2075, in XUL) #14: CallMethodHelper::Call() (XPCWrappedNative.cpp:1394, in XUL) #15: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (XPCWrappedNative.cpp:1361, in XUL) #16: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (XPCWrappedNativeJSOps.cpp:1128, in XUL) #17: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (jscntxtinlines.h:232, in XUL) #18: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (Interpreter.cpp:453, in XUL) #19: InternalCall(JSContext*, js::AnyInvokeArgs const&) (Interpreter.cpp:498, in XUL) #20: js::CallFromStack(JSContext*, JS::CallArgs const&) (Interpreter.cpp:504, in XUL) #21: Interpret(JSContext*, js::RunState&) (Interpreter.cpp:2873, in XUL) #22: js::RunScript(JSContext*, js::RunState&) (Interpreter.cpp:399, in XUL) #23: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (Interpreter.cpp:471, in XUL) #24: InternalCall(JSContext*, js::AnyInvokeArgs const&) (Interpreter.cpp:498, in XUL) #25: js::CallFromStack(JSContext*, JS::CallArgs const&) (Interpreter.cpp:504, in XUL) #26: Interpret(JSContext*, js::RunState&) (Interpreter.cpp:2873, in XUL) [1] http://searchfox.org/mozilla-central/source/dom/messagechannel/tests/test_messageChannel_sharedWorker2.html
Kyle, it seems our SuspendWorkers code doesn't really account for SharedWorkers that are attached to two windows? Any ideas here?
Flags: needinfo?(khuey)
It wouldn't surprise me, the suspend/resume stuff is pretty busted.
Flags: needinfo?(khuey)
It's unclear to me how important it is that we fix this. I'm putting P3 = backlog for now.
Priority: -- → P3
Priority: P3 → P5
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.