Open Bug 1171030 Opened 9 years ago Updated 2 years ago

ASSERTION: Double-freezing?: '!IsFrozen()' in nsGlobalWindow.h, line 1428

Categories

(Core :: DOM: Core & HTML, defect)

Other Branch
defect

Tracking

()

People

(Reporter: tromey, Unassigned)

References

Details

I tried the test case from bug 1136353 today, using git master on x86-64 Fedora 22.

While running I got an assertion here:
https://dxr.mozilla.org/mozilla-central/source/dom/base/nsGlobalWindow.h?from=nsGlobalWindow.h#1428

I'm appending the stack trace.  This assertion triggers multiple times during the test.

My mozconfig is:
```
ac_add_options --disable-optimize
ac_add_options --enable-debug
ac_add_options --enable-warnings-as-errors
ac_add_options --disable-crashreporter
ac_add_options --disable-jemalloc
ac_add_options --enable-valgrind
ac_add_options --enable-devtools-perf
```

[20732] ###!!! ASSERTION: Double-freezing?: '!IsFrozen()', file /home/tromey/firefox-git/tree-2/dom/base/nsGlobalWindow.h, line 1428
#01: nsGlobalWindow::Freeze() (/home/tromey/firefox-git/tree-2/dom/base/nsGlobalWindow.h:1428 (discriminator 1))
#02: nsGlobalWindow::SuspendTimeouts(unsigned int, bool) (/home/tromey/firefox-git/tree-2/dom/base/nsGlobalWindow.cpp:13159)
#03: nsGlobalWindow::SuspendTimeouts(unsigned int, bool) (/home/tromey/firefox-git/tree-2/dom/base/nsGlobalWindow.cpp:13086 (discriminator 3))
#04: nsDOMWindowUtils::SuspendTimeouts() (/home/tromey/firefox-git/tree-2/dom/base/nsDOMWindowUtils.cpp:2193)
#05: NS_InvokeByIndex (/home/tromey/firefox-git/tree-2/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:176)
#06: CallMethodHelper::Invoke() (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:2081)
#07: CallMethodHelper::Call() (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:1417)
#08: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:1384)
#09: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1144)
#10: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#11: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#12: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#13: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#14: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#15: js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1570 (discriminator 2))
#16: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#17: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#18: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#19: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#20: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#21: js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1570 (discriminator 2))
#22: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#23: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#24: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#25: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/DirectProxyHandler.cpp:77)
#26: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#27: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:391)
#28: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:697)
#29: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#30: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:695)
#31: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#32: js::Debugger::fireNewScript(JSContext*, JS::Handle<JSScript*>) (/home/tromey/firefox-git/tree-2/js/src/vm/Debugger.cpp:1259)
#33: operator() (/home/tromey/firefox-git/tree-2/js/src/vm/Debugger.cpp:1408)
#34: dispatchHook<js::Debugger::slowPathOnNewScript(JSContext*, JS::HandleScript)::<lambda(js::Debugger*)>, js::Debugger::slowPathOnNewScript(JSContext*, JS::HandleScript)::<lambda(js::Debugger*)> > (/home/tromey/firefox-git/tree-2/js/src/vm/Debugger.cpp:1390)
#35: js::Debugger::slowPathOnNewScript(JSContext*, JS::Handle<JSScript*>) (/home/tromey/firefox-git/tree-2/js/src/vm/Debugger.cpp:1409)
#36: js::Debugger::onNewScript(JSContext*, JS::Handle<JSScript*>) (/home/tromey/firefox-git/tree-2/js/src/vm/Debugger.h:1005)
#37: js::CloneFunctionScript(JSContext*, JS::Handle<JSFunction*>, JS::Handle<JSFunction*>, js::PollutedGlobalScopeOption, js::NewObjectKind) (/home/tromey/firefox-git/tree-2/js/src/jsscript.cpp:3268)
#38: js::CloneFunctionObject(JSContext*, JS::Handle<JSFunction*>, JS::Handle<JSObject*>, js::gc::AllocKind, js::NewObjectKind, JS::Handle<JSObject*>) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:2197 (discriminator 1))
#39: CloneFunctionObject (/home/tromey/firefox-git/tree-2/js/src/jsapi.cpp:3349)
#40: JS::CloneFunctionObject(JSContext*, JS::Handle<JSObject*>) (/home/tromey/firefox-git/tree-2/js/src/jsapi.cpp:3358)
#41: nsXBLProtoImplProperty::InstallMember(JSContext*, JS::Handle<JSObject*>) (/home/tromey/firefox-git/tree-2/dom/xbl/nsXBLProtoImplProperty.cpp:147)
#42: nsXBLProtoImpl::InstallImplementation(nsXBLPrototypeBinding*, nsXBLBinding*) (/home/tromey/firefox-git/tree-2/dom/xbl/nsXBLProtoImpl.cpp:132 (discriminator 2))
#43: nsXBLPrototypeBinding::InstallImplementation(nsXBLBinding*) (/home/tromey/firefox-git/tree-2/dom/xbl/nsXBLPrototypeBinding.cpp:317)
#44: nsXBLBinding::InstallImplementation() (/home/tromey/firefox-git/tree-2/dom/xbl/nsXBLBinding.cpp:573)
#45: nsXBLService::LoadBindings(nsIContent*, nsIURI*, nsIPrincipal*, nsXBLBinding**, bool*) (/home/tromey/firefox-git/tree-2/dom/xbl/nsXBLService.cpp:499)
#46: nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState&, nsIContent*, nsContainerFrame*, nsIAtom*, int, bool, nsStyleContext*, unsigned int, nsTArray<nsIAnonymousContentCreator::ContentInfo>*, nsCSSFrameConstructor::FrameConstructionItemList&) (/home/tromey/firefox-git/tree-2/layout/base/nsCSSFrameConstructor.cpp:5504)
#47: nsCSSFrameConstructor::DoAddFrameConstructionItems(nsFrameConstructorState&, nsIContent*, nsStyleContext*, bool, nsContainerFrame*, nsTArray<nsIAnonymousContentCreator::ContentInfo>*, nsCSSFrameConstructor::FrameConstructionItemList&) (/home/tromey/firefox-git/tree-2/layout/base/nsCSSFrameConstructor.cpp:5421)
#48: nsCSSFrameConstructor::AddFrameConstructionItems(nsFrameConstructorState&, nsIContent*, bool, nsCSSFrameConstructor::InsertionPoint const&, nsCSSFrameConstructor::FrameConstructionItemList&) (/home/tromey/firefox-git/tree-2/layout/base/nsCSSFrameConstructor.cpp:5439)
#49: nsCSSFrameConstructor::ContentAppended(nsIContent*, nsIContent*, bool) (/home/tromey/firefox-git/tree-2/layout/base/nsCSSFrameConstructor.cpp:7220 (discriminator 2))
#50: PresShell::ContentAppended(nsIDocument*, nsIContent*, nsIContent*, int) (/home/tromey/firefox-git/tree-2/layout/base/nsPresShell.cpp:4531)
#51: nsNodeUtils::ContentAppended(nsIContent*, nsIContent*, int) (/home/tromey/firefox-git/tree-2/dom/base/nsNodeUtils.cpp:163 (discriminator 19))
#52: nsINode::doInsertChildAt(nsIContent*, unsigned int, bool, nsAttrAndChildArray&) (/home/tromey/firefox-git/tree-2/dom/base/nsINode.cpp:1544)
#53: mozilla::dom::FragmentOrElement::InsertChildAt(nsIContent*, unsigned int, bool) (/home/tromey/firefox-git/tree-2/dom/base/FragmentOrElement.cpp:1144)
#54: nsINode::ReplaceOrInsertBefore(bool, nsINode*, nsINode*, mozilla::ErrorResult&) (/home/tromey/firefox-git/tree-2/dom/base/nsINode.cpp:2209)
#55: nsINode::InsertBefore(nsINode&, nsINode*, mozilla::ErrorResult&) (/home/tromey/firefox-git/tree-2/dom/base/nsINode.h:1702)
#56: nsINode::AppendChild(nsINode&, mozilla::ErrorResult&) (/home/tromey/firefox-git/tree-2/dom/base/nsINode.h:1706)
#57: appendChild (/home/tromey/firefox-git/tree-2/obj-x86_64-unknown-linux-gnu/dom/bindings/NodeBinding.cpp:619)
#58: mozilla::dom::GenericBindingMethod(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/dom/bindings/BindingUtils.cpp:2609)
#59: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#60: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#61: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#62: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/DirectProxyHandler.cpp:77)
#63: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#64: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:391)
#65: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:697)
#66: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#67: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:695)
#68: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#69: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#70: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#71: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#72: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/DirectProxyHandler.cpp:77)
#73: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/home/tromey/firefox-git/tree-2/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#74: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:391)
#75: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/proxy/Proxy.cpp:697)
#76: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#77: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:695)
#78: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#79: JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/jsapi.cpp:4430)
#80: mozilla::dom::AnyCallback::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) (/home/tromey/firefox-git/tree-2/obj-x86_64-unknown-linux-gnu/dom/bindings/PromiseBinding.cpp:78)
#81: mozilla::dom::AnyCallback::Call(JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JSCompartment*) (/home/tromey/firefox-git/tree-2/obj-x86_64-unknown-linux-gnu/dom/promise/../../dist/include/mozilla/dom/PromiseBinding.h:129)
#82: mozilla::dom::WrapperPromiseCallback::Call(JSContext*, JS::Handle<JS::Value>) (/home/tromey/firefox-git/tree-2/dom/promise/PromiseCallback.cpp:212)
#83: mozilla::dom::PromiseCallbackTask::Run() (/home/tromey/firefox-git/tree-2/dom/promise/Promise.cpp:96)
#84: mozilla::dom::Promise::PerformMicroTaskCheckpoint() (/home/tromey/firefox-git/tree-2/dom/promise/Promise.cpp:504)
#85: nsXPConnect::AfterProcessNextEvent(nsIThreadInternal*, unsigned int, bool) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/nsXPConnect.cpp:978)
#86: nsThread::ProcessNextEvent(bool, bool*) (/home/tromey/firefox-git/tree-2/xpcom/threads/nsThread.cpp:868)
#87: NS_ProcessNextEvent(nsIThread*, bool) (/home/tromey/firefox-git/tree-2/xpcom/glue/nsThreadUtils.cpp:265)
#88: mozilla::jsinspector::nsJSInspector::EnterNestedEventLoop(JS::Handle<JS::Value>, unsigned int*) (/home/tromey/firefox-git/tree-2/toolkit/devtools/server/nsJSInspector.cpp:79)
#89: NS_InvokeByIndex (/home/tromey/firefox-git/tree-2/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:176)
#90: CallMethodHelper::Invoke() (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:2081)
#91: CallMethodHelper::Call() (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:1417)
#92: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNative.cpp:1384)
#93: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1144)
#94: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#95: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#96: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#97: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#98: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#99: js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1570 (discriminator 2))
#100: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#101: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#102: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#103: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#104: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#105: js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1570 (discriminator 2))
#106: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#107: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#108: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#109: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#110: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#111: js::fun_apply(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1288)
#112: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#113: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#114: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#115: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#116: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#117: js::fun_apply(JSContext*, unsigned int, JS::Value*) (/home/tromey/firefox-git/tree-2/js/src/jsfun.cpp:1288)
#118: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/home/tromey/firefox-git/tree-2/js/src/jscntxtinlines.h:235)
#119: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:702)
#120: Interpret (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:2936)
#121: js::RunScript(JSContext*, js::RunState&) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:652)
#122: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:722)
#123: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/vm/Interpreter.cpp:759)
#124: JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/home/tromey/firefox-git/tree-2/js/src/jsapi.cpp:4418)
#125: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedJSClass.cpp:1212)
#126: nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/home/tromey/firefox-git/tree-2/js/xpconnect/src/XPCWrappedJS.cpp:526)
#127: PrepareAndDispatch (/home/tromey/firefox-git/tree-2/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:122)
#128: SharedStub (/home/tromey/firefox-git/tree-2/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:128 (discriminator 1))
Who is calling nsDOMWindowUtils::SuspendTimeouts()? Possibly a bug in the caller.
It is https://dxr.mozilla.org/mozilla-central/source/toolkit/devtools/server/actors/chrome.js#168

js stack says:

(gdb) call DumpJSStack()
0 ChromeActor.prototype.preNest() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/chrome.js":168]
    this = [object Object]
1 EventLoop.prototype.enter() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":334]
    this = [object Object]
2 ThreadActor.prototype.synchronize(aPromise = [object Promise]) ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":1065]
    this = [object Object]
3 ThreadActor.prototype._addSource(aSource = [object Source]) ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":1908]
    this = [object Object]
4 ThreadActor.prototype.onNewScript(aScript = [object Script]) ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":1861]
    this = [object Object]
5 EventLoop.prototype.enter() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":338]
    this = [object Object]
6 ThreadActor.prototype._pushThreadPause() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":530]
    this = [object Object]
7 ThreadActor.prototype.onAttach(aRequest = [object Object], [object Object]) ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/script.js":643]
    this = [object Object]
8 DSC_onPacket(aPacket = [object Object]) ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js":1469]
    this = [object Object]
9 DebuggerTransport.prototype._onJSONObjectReady/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/transport/transport.js":479]
    this = [object Object]
10 makeInfallible/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevT(gdb)
FWIW I'm seeing this today on OSX 10.9.5 with nightly debug, just trying to open the browser toolbox (debugger tab). Seems to happen every time.

> ★ ~/moz/mozilla-central $ mach run
>  0:00.29 /Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-debug/dist/NightlyDebug.app/Contents/MacOS/firefox -no-remote -foreground -profile /Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-debug/tmp/scratch_user
> [21138] WARNING: Loaded script chrome://global/content/printUtils.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://global/content/viewZoomOverlay.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://browser/content/places/browserPlacesViews.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://browser/content/browser.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://browser/content/downloads/downloads.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://browser/content/downloads/indicator.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://browser/content/customizableui/panelUI.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://global/content/inlineSpellCheckUI.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: Loaded script chrome://global/content/viewSourceUtils.js twice (bug 392650): file /Users/Jan/moz/mozilla-central/dom/xul/nsXULPrototypeCache.cpp, line 219
> [21138] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /Users/Jan/moz/mozilla-central/dom/base/nsFrameLoader.cpp, line 269
> [21138] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /Users/Jan/moz/mozilla-central/dom/base/nsFrameLoader.cpp, line 269
> [21138] WARNING: NS_ENSURE_TRUE(mTextInputHandler) failed: file /Users/Jan/moz/mozilla-central/widget/cocoa/nsChildView.mm, line 5373
> [21138] WARNING: NS_ENSURE_TRUE(globalObject && globalObject->GetGlobalJSObject()) failed: file /Users/Jan/moz/mozilla-central/dom/base/nsDocument.cpp, line 8315
> [21138] WARNING: NS_ENSURE_TRUE(globalObject && globalObject->GetGlobalJSObject()) failed: file /Users/Jan/moz/mozilla-central/dom/base/nsDocument.cpp, line 8315
> [21138] WARNING: NS_ENSURE_TRUE(mTextInputHandler) failed: file /Users/Jan/moz/mozilla-central/widget/cocoa/nsChildView.mm, line 5373
> [21138] WARNING: attempt to modify an immutable nsStandardURL: file /Users/Jan/moz/mozilla-central/netwerk/base/nsStandardURL.cpp, line 1299
> [21138] WARNING: Could not get disk status from nsIDiskSpaceWatcher: file /Users/Jan/moz/mozilla-central/uriloader/prefetch/nsOfflineCacheUpdateService.cpp, line 317
> [21138] WARNING: Image width or height is non-positive: file /Users/Jan/moz/mozilla-central/layout/base/nsLayoutUtils.cpp, line 6294
> [21138] WARNING: NS_ENSURE_TRUE(aSecondURI) failed: file /Users/Jan/moz/mozilla-central/dom/base/ThirdPartyUtil.cpp, line 52
> [21138] WARNING: NS_ENSURE_TRUE(aSecondURI) failed: file /Users/Jan/moz/mozilla-central/dom/base/ThirdPartyUtil.cpp, line 52
> [21138] WARNING: NS_ENSURE_TRUE(aSecondURI) failed: file /Users/Jan/moz/mozilla-central/dom/base/ThirdPartyUtil.cpp, line 52
> [21138] WARNING: NS_ENSURE_TRUE(aSecondURI) failed: file /Users/Jan/moz/mozilla-central/dom/base/ThirdPartyUtil.cpp, line 52
> JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line 189: TypeError: can't redefine non-configurable property "Services"
> [21140] WARNING: NS_ENSURE_TRUE(mTextInputHandler) failed: file /Users/Jan/moz/mozilla-central/widget/cocoa/nsChildView.mm, line 5373
> [21138] WARNING: NS_ENSURE_TRUE(mTextInputHandler) failed: file /Users/Jan/moz/mozilla-central/widget/cocoa/nsChildView.mm, line 5373
> [21140] WARNING: NS_ENSURE_TRUE(mTextInputHandler) failed: file /Users/Jan/moz/mozilla-central/widget/cocoa/nsChildView.mm, line 5373
> [21138] WARNING: getting z level of unregistered window: file /Users/Jan/moz/mozilla-central/xpfe/appshell/nsWindowMediator.cpp, line 585
> [21138] WARNING: getting z level of unregistered window: file /Users/Jan/moz/mozilla-central/xpfe/appshell/nsWindowMediator.cpp, line 585
> Chrome file doesn't exist: /Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-debug/dist/NightlyDebug.app/Contents/Resources/browser/chrome/devtools/content/debugger/views/event-listeners-view.js
> Failed to load file:///Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-debug/dist/NightlyDebug.app/Contents/Resources/browser/chrome/devtools/content/debugger/views/event-listeners-view.js
> [21138] ###!!! ASSERTION: Double-freezing?: '!IsFrozen()', file /Users/Jan/moz/mozilla-central/dom/base/nsGlobalWindow.h, line 1511
> [21138] ###!!! ASSERTION: Double-freezing?: '!IsFrozen()', file /Users/Jan/moz/mozilla-central/dom/base/nsGlobalWindow.h, line 1511
> [21138] ###!!! ASSERTION: Double-freezing?: '!IsFrozen()', file /Users/Jan/moz/mozilla-central/dom/base/nsGlobalWindow.h, line 1511
> [21138] ###!!! ASSERTION: Double-freezing?: '!IsFrozen()', file /Users/Jan/moz/mozilla-central/dom/base/nsGlobalWindow.h, line 1511

goes ding ding ding ding.
Four more as I clicked the gear icon in about:addons extensions (going for "Install Add-on From File..."). Happened only the first time the drop-down opened. Closing and re-opening does not reproduce (must have cached it).
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.