Bug 1392408 Comment 6 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

(In reply to Jan Honza Odvarko [:Honza] (always need-info? me) from comment #3)

> 5) There is immediate request for the worker script, check the side bar for stack trace, it's missing -> BUG
> 5) Wait for 5 sec there is another XHR done from within the worker, check the side bar for stack trace, it's missing -> BUG

Both of these have the same underlying cause.  When a worker makes an HTTP request (for either its own .js file or for an XHR) it does so by dispatching runnables to the main thread to open the channel, triggering the observer in StackTraceCollector when there is nothing on the main thread's stack.  The associated C++ stacks are below, for reference.  I don't think either of these cases is super easy to fix: StackFrameCollector only operates on the main thread's current stack, and in both of these cases we need to save the stack somewhere else while we're in C++ and hand it off later for processing.

I'll look more closely at fixing this soon, but doing bug 1543751 first will give some insights into managing stack traces while we're on a worker thread.


Worker Script


* frame #0: 0x000000011c3d67f0 XUL`Interpret(cx=<unavailable>, state=<unavailable>) at Interpreter.cpp:1961 [opt]
    frame #1: 0x000000011c3d5abc XUL`js::RunScript(cx=0x000000010d527000, state=0x00007ffee60efd50) at Interpreter.cpp:422 [opt]
    frame #2: 0x000000011c3e58b9 XUL`js::InternalCallOrConstruct(cx=0x000000010d527000, args=0x00007ffee60efdf8, construct=<unavailable>) at Interpreter.cpp:562 [opt]
    frame #3: 0x000000011c3e5df9 XUL`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x00007ffee60efdf8, rval=<unavailable>) at Interpreter.cpp:605 [opt]
    frame #4: 0x000000011c7547de XUL`JS_CallFunctionValue(cx=0x000000010d527000, obj=<unavailable>, fval=<unavailable>, args=0x00007ffee60effc8, rval=JS::MutableHandleValue @ 0x00007ffee60efde0) at jsapi.cpp:2558 [opt]
    frame #5: 0x000000011908ea19 XUL`nsXPCWrappedJSClass::CallMethod(wrapper=<unavailable>, methodIndex=<unavailable>, info=<unavailable>, nativeParams=0x00007ffee60f0360) at XPCWrappedJSClass.cpp:951 [opt]
    frame #6: 0x00000001187e0175 XUL`::PrepareAndDispatch(self=0x0000000116677ec0, methodIndex=<unavailable>, args=<unavailable>, gpregs=0x00007ffee60f0420, fpregs=0x00007ffee60f0450) at xptcstubs_x86_64_darwin.cpp:129 [opt]
    frame #7: 0x00000001187def9b XUL`SharedStub + 91
    frame #8: 0x0000000118761d6f XUL`nsObserverList::NotifyObservers(this=<unavailable>, aSubject=0x0000000116624800, aTopic="http-on-opening-request", someData=0x0000000000000000) at nsObserverList.cpp:66 [opt]
    frame #9: 0x0000000118763b1c XUL`nsObserverService::NotifyObservers(this=<unavailable>, aSubject=0x0000000116624800, aTopic="http-on-opening-request", aSomeData=0x0000000000000000) at nsObserverService.cpp:294 [opt]
    frame #10: 0x0000000118b36330 XUL`mozilla::net::nsHttpHandler::NotifyObservers(this=<unavailable>, chan=0x0000000116624800, event="http-on-opening-request") at nsHttpHandler.cpp:835 [opt]
    frame #11: 0x0000000118b8009b XUL`mozilla::net::HttpChannelChild::AsyncOpen(nsIStreamListener*) [inlined] mozilla::net::nsHttpHandler::OnOpeningRequest(this=<unavailable>, chan=0x0000000116624800) at nsHttpHandler.h:329 [opt]
    frame #12: 0x0000000118b80085 XUL`mozilla::net::HttpChannelChild::AsyncOpen(this=0x0000000116624800, aListener=<unavailable>) at HttpChannelChild.cpp:2488 [opt]
    frame #13: 0x000000011ac78db3 XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::LoadScript(this=<unavailable>, aIndex=360613824) at ScriptLoader.cpp:988 [opt]
    frame #14: 0x000000011ac77dce XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::Run() at ScriptLoader.cpp:842 [opt]
    frame #15: 0x000000011ac77d55 XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::Run(this=0x00000001166b8430) at ScriptLoader.cpp:598 [opt]
    frame #16: 0x00000001187ceee1 XUL`nsThread::ProcessNextEvent(this=0x000000010a04eac0, aMayWait=<unavailable>, aResult=0x00007ffee60f0d9f) at nsThread.cpp:1180 [opt]
    frame #17: 0x00000001187d1669 XUL`NS_ProcessNextEvent(aThread=<unavailable>, aMayWait=false) at nsThreadUtils.cpp:486 [opt]
    frame #18: 0x0000000118d1b156 XUL`mozilla::ipc::MessagePump::Run(this=0x000000010a05e6f0, aDelegate=0x00007ffee60f0fb8) at MessagePump.cpp:88 [opt]
    frame #19: 0x0000000118cd9809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #20: 0x0000000118cd97fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #21: 0x0000000118cd97fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #22: 0x000000011aee0e29 XUL`nsBaseAppShell::Run(this=0x000000010ba50310) at nsBaseAppShell.cpp:137 [opt]
    frame #23: 0x000000011af4b4cf XUL`nsAppShell::Run(this=0x000000010ba50310) at nsAppShell.mm:702 [opt]
    frame #24: 0x000000011c304cb8 XUL`XRE_RunAppShell() at nsEmbedFunctions.cpp:919 [opt]
    frame #25: 0x0000000118cd9809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #26: 0x0000000118cd97fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #27: 0x0000000118cd97fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #28: 0x000000011c304a5a XUL`XRE_InitChildProcess(aArgc=<unavailable>, aArgv=<unavailable>, aChildData=<unavailable>) at nsEmbedFunctions.cpp:757 [opt]
    frame #29: 0x0000000109b0ef07 plugin-container`main [inlined] content_process_main(bootstrap=0x000000010a00b180, argc=<unavailable>, argv=0x00007ffee60f1248) at plugin-container.cpp:56 [opt]
    frame #30: 0x0000000109b0eedb plugin-container`main(argc=<unavailable>, argv=0x00007ffee60f1248) at MozillaRuntimeMain.cpp:23 [opt]
    frame #31: 0x00007fff5a74d085 libdyld.dylib`start + 1
    frame #32: 0x00007fff5a74d085 libdyld.dylib`start + 1


Worker XHR request


* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x0000000113d191e4 XUL`Interpret(cx=<unavailable>, state=<unavailable>) at Interpreter.cpp:0 [opt]
    frame #1: 0x0000000113d17abc XUL`js::RunScript(cx=0x000000010eb27000, state=0x00007ffee4b18a00) at Interpreter.cpp:422 [opt]
    frame #2: 0x0000000113d278b9 XUL`js::InternalCallOrConstruct(cx=0x000000010eb27000, args=0x00007ffee4b18aa8, construct=<unavailable>) at Interpreter.cpp:562 [opt]
    frame #3: 0x0000000113d27df9 XUL`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x00007ffee4b18aa8, rval=<unavailable>) at Interpreter.cpp:605 [opt]
    frame #4: 0x00000001140967de XUL`JS_CallFunctionValue(cx=0x000000010eb27000, obj=<unavailable>, fval=<unavailable>, args=0x00007ffee4b18c78, rval=JS::MutableHandleValue @ 0x00007ffee4b18a90) at jsapi.cpp:2558 [opt]
    frame #5: 0x00000001109d0a19 XUL`nsXPCWrappedJSClass::CallMethod(wrapper=<unavailable>, methodIndex=<unavailable>, info=<unavailable>, nativeParams=0x00007ffee4b19010) at XPCWrappedJSClass.cpp:951 [opt]
    frame #6: 0x0000000110122175 XUL`::PrepareAndDispatch(self=0x000000012873dc60, methodIndex=<unavailable>, args=<unavailable>, gpregs=0x00007ffee4b190d0, fpregs=0x00007ffee4b19100) at xptcstubs_x86_64_darwin.cpp:129 [opt]
    frame #7: 0x0000000110120f9b XUL`SharedStub + 91
    frame #8: 0x00000001100a3d6f XUL`nsObserverList::NotifyObservers(this=<unavailable>, aSubject=0x000000012871f000, aTopic="http-on-opening-request", someData=0x0000000000000000) at nsObserverList.cpp:66 [opt]
    frame #9: 0x00000001100a5b1c XUL`nsObserverService::NotifyObservers(this=<unavailable>, aSubject=0x000000012871f000, aTopic="http-on-opening-request", aSomeData=0x0000000000000000) at nsObserverService.cpp:294 [opt]
    frame #10: 0x0000000110478330 XUL`mozilla::net::nsHttpHandler::NotifyObservers(this=<unavailable>, chan=0x000000012871f000, event="http-on-opening-request") at nsHttpHandler.cpp:835 [opt]
    frame #11: 0x00000001104c209b XUL`mozilla::net::HttpChannelChild::AsyncOpen(nsIStreamListener*) [inlined] mozilla::net::nsHttpHandler::OnOpeningRequest(this=<unavailable>, chan=0x000000012871f000) at nsHttpHandler.h:329 [opt]
    frame #12: 0x00000001104c2085 XUL`mozilla::net::HttpChannelChild::AsyncOpen(this=0x000000012871f000, aListener=<unavailable>) at HttpChannelChild.cpp:2488 [opt]
    frame #13: 0x00000001127001fd XUL`mozilla::dom::XMLHttpRequestMainThread::InitiateFetch(this=0x0000000127b61c00, aUploadStream=<unavailable>, aUploadLength=<unavailable>, aUploadContentType=0x00007ffee4b19598) at XMLHttpRequestMainThread.cpp:2640 [opt]
    frame #14: 0x00000001127011b4 XUL`mozilla::dom::XMLHttpRequestMainThread::SendInternal(this=0x0000000127b61c00, aBody=<unavailable>, aBodyIsDocumentOrString=<unavailable>) at XMLHttpRequestMainThread.cpp:2868 [opt]
    frame #15: 0x00000001127009fb XUL`mozilla::dom::XMLHttpRequestMainThread::Send(this=<unavailable>, aCx=<unavailable>, aData=<unavailable>, aRv=0x00007ffee4b197e8) at BodyExtractor.h:0 [opt]
    frame #16: 0x00000001127062d0 XUL`mozilla::dom::SendRunnable::RunOnMainThread(this=0x000000013d91e640, aRv=0x00007ffee4b197e8) at XMLHttpRequestWorker.cpp:1403 [opt]
    frame #17: 0x0000000112705b85 XUL`mozilla::dom::WorkerThreadProxySyncRunnable::MainThreadRun(this=0x000000013d91e640) at XMLHttpRequestWorker.cpp:1245 [opt]
    frame #18: 0x00000001125d34b3 XUL`mozilla::dom::WorkerMainThreadRunnable::Run(this=0x000000013d91e640) at WorkerRunnable.cpp:569 [opt]
    frame #19: 0x000000011011bb0c XUL`mozilla::ThrottledEventQueue::Inner::ExecuteRunnable(this=<unavailable>) at ThrottledEventQueue.cpp:243 [opt]
    frame #20: 0x0000000110119d3d XUL`mozilla::ThrottledEventQueue::Inner::Executor::Run(this=<unavailable>) at ThrottledEventQueue.cpp:80 [opt]
    frame #21: 0x0000000110110ee1 XUL`nsThread::ProcessNextEvent(this=0x000000010b64eac0, aMayWait=<unavailable>, aResult=0x00007ffee4b19d9f) at nsThread.cpp:1180 [opt]
    frame #22: 0x0000000110113669 XUL`NS_ProcessNextEvent(aThread=<unavailable>, aMayWait=true) at nsThreadUtils.cpp:486 [opt]
    frame #23: 0x000000011065d116 XUL`mozilla::ipc::MessagePump::Run(this=0x000000010b65e6f0, aDelegate=0x00007ffee4b19fb8) at MessagePump.cpp:110 [opt]
    frame #24: 0x000000011061b809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #25: 0x000000011061b7fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #26: 0x000000011061b7fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #27: 0x0000000112822e29 XUL`nsBaseAppShell::Run(this=0x000000010b757700) at nsBaseAppShell.cpp:137 [opt]
    frame #28: 0x000000011288d4cf XUL`nsAppShell::Run(this=0x000000010b757700) at nsAppShell.mm:702 [opt]
    frame #29: 0x0000000113c46cb8 XUL`XRE_RunAppShell() at nsEmbedFunctions.cpp:919 [opt]
    frame #30: 0x000000011061b809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #31: 0x000000011061b7fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #32: 0x000000011061b7fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #33: 0x0000000113c46a5a XUL`XRE_InitChildProcess(aArgc=<unavailable>, aArgv=<unavailable>, aChildData=<unavailable>) at nsEmbedFunctions.cpp:757 [opt]
    frame #34: 0x000000010b0e5f07 plugin-container`main [inlined] content_process_main(bootstrap=0x000000010b60b180, argc=<unavailable>, argv=0x00007ffee4b1a248) at plugin-container.cpp:56 [opt]
    frame #35: 0x000000010b0e5edb plugin-container`main(argc=<unavailable>, argv=0x00007ffee4b1a248) at MozillaRuntimeMain.cpp:23 [opt]
    frame #36: 0x00007fff5a74d085 libdyld.dylib`start + 1
    frame #37: 0x00007fff5a74d085 libdyld.dylib`start + 1
(In reply to Jan Honza Odvarko [:Honza] (always need-info? me) from comment #3)

> 5) There is immediate request for the worker script, check the side bar for stack trace, it's missing -> BUG
> 5) Wait for 5 sec there is another XHR done from within the worker, check the side bar for stack trace, it's missing -> BUG

Both of these have the same underlying cause.  When a worker makes an HTTP request (for either its own .js file or for an XHR) it does so by dispatching runnables to the main thread to open the channel, triggering the observer in StackTraceCollector when there is nothing on the main thread's stack.  The associated C++ stacks are below, for reference.  I don't think either of these cases is super easy to fix: StackFrameCollector only operates on the main thread's current stack, and in both of these cases we need to save the stack somewhere else while we're in C++ and hand it off later for processing.

I'll look more closely at fixing this soon, but doing bug 1543751 first will give some insights into managing stack traces while we're on a worker thread.


Worker Script

```
* frame #0: 0x000000011c3d67f0 XUL`Interpret(cx=<unavailable>, state=<unavailable>) at Interpreter.cpp:1961 [opt]
    frame #1: 0x000000011c3d5abc XUL`js::RunScript(cx=0x000000010d527000, state=0x00007ffee60efd50) at Interpreter.cpp:422 [opt]
    frame #2: 0x000000011c3e58b9 XUL`js::InternalCallOrConstruct(cx=0x000000010d527000, args=0x00007ffee60efdf8, construct=<unavailable>) at Interpreter.cpp:562 [opt]
    frame #3: 0x000000011c3e5df9 XUL`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x00007ffee60efdf8, rval=<unavailable>) at Interpreter.cpp:605 [opt]
    frame #4: 0x000000011c7547de XUL`JS_CallFunctionValue(cx=0x000000010d527000, obj=<unavailable>, fval=<unavailable>, args=0x00007ffee60effc8, rval=JS::MutableHandleValue @ 0x00007ffee60efde0) at jsapi.cpp:2558 [opt]
    frame #5: 0x000000011908ea19 XUL`nsXPCWrappedJSClass::CallMethod(wrapper=<unavailable>, methodIndex=<unavailable>, info=<unavailable>, nativeParams=0x00007ffee60f0360) at XPCWrappedJSClass.cpp:951 [opt]
    frame #6: 0x00000001187e0175 XUL`::PrepareAndDispatch(self=0x0000000116677ec0, methodIndex=<unavailable>, args=<unavailable>, gpregs=0x00007ffee60f0420, fpregs=0x00007ffee60f0450) at xptcstubs_x86_64_darwin.cpp:129 [opt]
    frame #7: 0x00000001187def9b XUL`SharedStub + 91
    frame #8: 0x0000000118761d6f XUL`nsObserverList::NotifyObservers(this=<unavailable>, aSubject=0x0000000116624800, aTopic="http-on-opening-request", someData=0x0000000000000000) at nsObserverList.cpp:66 [opt]
    frame #9: 0x0000000118763b1c XUL`nsObserverService::NotifyObservers(this=<unavailable>, aSubject=0x0000000116624800, aTopic="http-on-opening-request", aSomeData=0x0000000000000000) at nsObserverService.cpp:294 [opt]
    frame #10: 0x0000000118b36330 XUL`mozilla::net::nsHttpHandler::NotifyObservers(this=<unavailable>, chan=0x0000000116624800, event="http-on-opening-request") at nsHttpHandler.cpp:835 [opt]
    frame #11: 0x0000000118b8009b XUL`mozilla::net::HttpChannelChild::AsyncOpen(nsIStreamListener*) [inlined] mozilla::net::nsHttpHandler::OnOpeningRequest(this=<unavailable>, chan=0x0000000116624800) at nsHttpHandler.h:329 [opt]
    frame #12: 0x0000000118b80085 XUL`mozilla::net::HttpChannelChild::AsyncOpen(this=0x0000000116624800, aListener=<unavailable>) at HttpChannelChild.cpp:2488 [opt]
    frame #13: 0x000000011ac78db3 XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::LoadScript(this=<unavailable>, aIndex=360613824) at ScriptLoader.cpp:988 [opt]
    frame #14: 0x000000011ac77dce XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::Run() at ScriptLoader.cpp:842 [opt]
    frame #15: 0x000000011ac77d55 XUL`mozilla::dom::(anonymous namespace)::ScriptLoaderRunnable::Run(this=0x00000001166b8430) at ScriptLoader.cpp:598 [opt]
    frame #16: 0x00000001187ceee1 XUL`nsThread::ProcessNextEvent(this=0x000000010a04eac0, aMayWait=<unavailable>, aResult=0x00007ffee60f0d9f) at nsThread.cpp:1180 [opt]
    frame #17: 0x00000001187d1669 XUL`NS_ProcessNextEvent(aThread=<unavailable>, aMayWait=false) at nsThreadUtils.cpp:486 [opt]
    frame #18: 0x0000000118d1b156 XUL`mozilla::ipc::MessagePump::Run(this=0x000000010a05e6f0, aDelegate=0x00007ffee60f0fb8) at MessagePump.cpp:88 [opt]
    frame #19: 0x0000000118cd9809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #20: 0x0000000118cd97fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #21: 0x0000000118cd97fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #22: 0x000000011aee0e29 XUL`nsBaseAppShell::Run(this=0x000000010ba50310) at nsBaseAppShell.cpp:137 [opt]
    frame #23: 0x000000011af4b4cf XUL`nsAppShell::Run(this=0x000000010ba50310) at nsAppShell.mm:702 [opt]
    frame #24: 0x000000011c304cb8 XUL`XRE_RunAppShell() at nsEmbedFunctions.cpp:919 [opt]
    frame #25: 0x0000000118cd9809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #26: 0x0000000118cd97fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #27: 0x0000000118cd97fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #28: 0x000000011c304a5a XUL`XRE_InitChildProcess(aArgc=<unavailable>, aArgv=<unavailable>, aChildData=<unavailable>) at nsEmbedFunctions.cpp:757 [opt]
    frame #29: 0x0000000109b0ef07 plugin-container`main [inlined] content_process_main(bootstrap=0x000000010a00b180, argc=<unavailable>, argv=0x00007ffee60f1248) at plugin-container.cpp:56 [opt]
    frame #30: 0x0000000109b0eedb plugin-container`main(argc=<unavailable>, argv=0x00007ffee60f1248) at MozillaRuntimeMain.cpp:23 [opt]
    frame #31: 0x00007fff5a74d085 libdyld.dylib`start + 1
    frame #32: 0x00007fff5a74d085 libdyld.dylib`start + 1
```

Worker XHR request

```
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x0000000113d191e4 XUL`Interpret(cx=<unavailable>, state=<unavailable>) at Interpreter.cpp:0 [opt]
    frame #1: 0x0000000113d17abc XUL`js::RunScript(cx=0x000000010eb27000, state=0x00007ffee4b18a00) at Interpreter.cpp:422 [opt]
    frame #2: 0x0000000113d278b9 XUL`js::InternalCallOrConstruct(cx=0x000000010eb27000, args=0x00007ffee4b18aa8, construct=<unavailable>) at Interpreter.cpp:562 [opt]
    frame #3: 0x0000000113d27df9 XUL`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x00007ffee4b18aa8, rval=<unavailable>) at Interpreter.cpp:605 [opt]
    frame #4: 0x00000001140967de XUL`JS_CallFunctionValue(cx=0x000000010eb27000, obj=<unavailable>, fval=<unavailable>, args=0x00007ffee4b18c78, rval=JS::MutableHandleValue @ 0x00007ffee4b18a90) at jsapi.cpp:2558 [opt]
    frame #5: 0x00000001109d0a19 XUL`nsXPCWrappedJSClass::CallMethod(wrapper=<unavailable>, methodIndex=<unavailable>, info=<unavailable>, nativeParams=0x00007ffee4b19010) at XPCWrappedJSClass.cpp:951 [opt]
    frame #6: 0x0000000110122175 XUL`::PrepareAndDispatch(self=0x000000012873dc60, methodIndex=<unavailable>, args=<unavailable>, gpregs=0x00007ffee4b190d0, fpregs=0x00007ffee4b19100) at xptcstubs_x86_64_darwin.cpp:129 [opt]
    frame #7: 0x0000000110120f9b XUL`SharedStub + 91
    frame #8: 0x00000001100a3d6f XUL`nsObserverList::NotifyObservers(this=<unavailable>, aSubject=0x000000012871f000, aTopic="http-on-opening-request", someData=0x0000000000000000) at nsObserverList.cpp:66 [opt]
    frame #9: 0x00000001100a5b1c XUL`nsObserverService::NotifyObservers(this=<unavailable>, aSubject=0x000000012871f000, aTopic="http-on-opening-request", aSomeData=0x0000000000000000) at nsObserverService.cpp:294 [opt]
    frame #10: 0x0000000110478330 XUL`mozilla::net::nsHttpHandler::NotifyObservers(this=<unavailable>, chan=0x000000012871f000, event="http-on-opening-request") at nsHttpHandler.cpp:835 [opt]
    frame #11: 0x00000001104c209b XUL`mozilla::net::HttpChannelChild::AsyncOpen(nsIStreamListener*) [inlined] mozilla::net::nsHttpHandler::OnOpeningRequest(this=<unavailable>, chan=0x000000012871f000) at nsHttpHandler.h:329 [opt]
    frame #12: 0x00000001104c2085 XUL`mozilla::net::HttpChannelChild::AsyncOpen(this=0x000000012871f000, aListener=<unavailable>) at HttpChannelChild.cpp:2488 [opt]
    frame #13: 0x00000001127001fd XUL`mozilla::dom::XMLHttpRequestMainThread::InitiateFetch(this=0x0000000127b61c00, aUploadStream=<unavailable>, aUploadLength=<unavailable>, aUploadContentType=0x00007ffee4b19598) at XMLHttpRequestMainThread.cpp:2640 [opt]
    frame #14: 0x00000001127011b4 XUL`mozilla::dom::XMLHttpRequestMainThread::SendInternal(this=0x0000000127b61c00, aBody=<unavailable>, aBodyIsDocumentOrString=<unavailable>) at XMLHttpRequestMainThread.cpp:2868 [opt]
    frame #15: 0x00000001127009fb XUL`mozilla::dom::XMLHttpRequestMainThread::Send(this=<unavailable>, aCx=<unavailable>, aData=<unavailable>, aRv=0x00007ffee4b197e8) at BodyExtractor.h:0 [opt]
    frame #16: 0x00000001127062d0 XUL`mozilla::dom::SendRunnable::RunOnMainThread(this=0x000000013d91e640, aRv=0x00007ffee4b197e8) at XMLHttpRequestWorker.cpp:1403 [opt]
    frame #17: 0x0000000112705b85 XUL`mozilla::dom::WorkerThreadProxySyncRunnable::MainThreadRun(this=0x000000013d91e640) at XMLHttpRequestWorker.cpp:1245 [opt]
    frame #18: 0x00000001125d34b3 XUL`mozilla::dom::WorkerMainThreadRunnable::Run(this=0x000000013d91e640) at WorkerRunnable.cpp:569 [opt]
    frame #19: 0x000000011011bb0c XUL`mozilla::ThrottledEventQueue::Inner::ExecuteRunnable(this=<unavailable>) at ThrottledEventQueue.cpp:243 [opt]
    frame #20: 0x0000000110119d3d XUL`mozilla::ThrottledEventQueue::Inner::Executor::Run(this=<unavailable>) at ThrottledEventQueue.cpp:80 [opt]
    frame #21: 0x0000000110110ee1 XUL`nsThread::ProcessNextEvent(this=0x000000010b64eac0, aMayWait=<unavailable>, aResult=0x00007ffee4b19d9f) at nsThread.cpp:1180 [opt]
    frame #22: 0x0000000110113669 XUL`NS_ProcessNextEvent(aThread=<unavailable>, aMayWait=true) at nsThreadUtils.cpp:486 [opt]
    frame #23: 0x000000011065d116 XUL`mozilla::ipc::MessagePump::Run(this=0x000000010b65e6f0, aDelegate=0x00007ffee4b19fb8) at MessagePump.cpp:110 [opt]
    frame #24: 0x000000011061b809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #25: 0x000000011061b7fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #26: 0x000000011061b7fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #27: 0x0000000112822e29 XUL`nsBaseAppShell::Run(this=0x000000010b757700) at nsBaseAppShell.cpp:137 [opt]
    frame #28: 0x000000011288d4cf XUL`nsAppShell::Run(this=0x000000010b757700) at nsAppShell.mm:702 [opt]
    frame #29: 0x0000000113c46cb8 XUL`XRE_RunAppShell() at nsEmbedFunctions.cpp:919 [opt]
    frame #30: 0x000000011061b809 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:315 [opt]
    frame #31: 0x000000011061b7fa XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:308 [opt]
    frame #32: 0x000000011061b7fa XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:290 [opt]
    frame #33: 0x0000000113c46a5a XUL`XRE_InitChildProcess(aArgc=<unavailable>, aArgv=<unavailable>, aChildData=<unavailable>) at nsEmbedFunctions.cpp:757 [opt]
    frame #34: 0x000000010b0e5f07 plugin-container`main [inlined] content_process_main(bootstrap=0x000000010b60b180, argc=<unavailable>, argv=0x00007ffee4b1a248) at plugin-container.cpp:56 [opt]
    frame #35: 0x000000010b0e5edb plugin-container`main(argc=<unavailable>, argv=0x00007ffee4b1a248) at MozillaRuntimeMain.cpp:23 [opt]
    frame #36: 0x00007fff5a74d085 libdyld.dylib`start + 1
    frame #37: 0x00007fff5a74d085 libdyld.dylib`start + 1
```

Back to Bug 1392408 Comment 6