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.