Open Bug 1006507 Opened 10 years ago Updated 2 years ago

Hangs with plugin initiated XHR

Categories

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

x86
macOS
defect

Tracking

()

People

(Reporter: jrmuizel, Unassigned)

References

Details

This is what the stack looks like

* thread #1: tid = 0x575761, 0x00007fff89e07a1a libsystem_kernel.dylib`mach_msg_trap + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff89e07a1a libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007fff89e06d18 libsystem_kernel.dylib`mach_msg + 64
    frame #2: 0x00007fff8f370155 CoreFoundation`__CFRunLoopServiceMachPort + 181
    frame #3: 0x00007fff8f36f779 CoreFoundation`__CFRunLoopRun + 1161
    frame #4: 0x00007fff8f36f0b5 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #5: 0x00007fff86d06a0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #6: 0x00007fff86d067b7 HIToolbox`ReceiveNextEventCommon + 479
    frame #7: 0x00007fff86d065bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #8: 0x00007fff870b03de AppKit`_DPSNextEvent + 1434
    frame #9: 0x00007fff870afa2b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #10: 0x0000000101f43b16 XUL`-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 86
    frame #11: 0x0000000101f44994 XUL`nsAppShell::ProcessNextNativeEvent(bool) + 372
    frame #12: 0x0000000101f8b48b XUL`nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool, unsigned int) + 539
    frame #13: 0x0000000101f45057 XUL`nsAppShell::OnProcessNextEvent(nsIThreadInternal*, bool, unsigned int) + 103
    frame #14: 0x00000001010856c7 XUL`nsThread::ProcessNextEvent(bool, bool*) + 439
    frame #15: 0x0000000101018105 XUL`NS_ProcessNextEvent(nsIThread*, bool) + 53
    frame #16: 0x00000001024231e8 XUL`nsXMLHttpRequest::Send(nsIVariant*, mozilla::dom::Nullable<nsXMLHttpRequest::RequestBody> const&) + 5848
    frame #17: 0x0000000101e33582 XUL`mozilla::dom::XMLHttpRequestBinding::send(JSContext*, JS::Handle<JSObject*>, nsXMLHttpRequest*, JSJitMethodCallArgs const&) + 2482
    frame #18: 0x0000000101e9fadd XUL`mozilla::dom::GenericBindingMethod(JSContext*, unsigned int, JS::Value*) + 941
    frame #19: 0x00000001037bd4d1 XUL`js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) + 289
    frame #20: 0x00000001037b9a02 XUL`Interpret(JSContext*, js::RunState&) + 29986
    frame #21: 0x00000001037b244f XUL`js::RunScript(JSContext*, js::RunState&) + 479
    frame #22: 0x00000001037be537 XUL`js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) + 439
    frame #23: 0x00000001037be6a3 XUL`js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) + 227
    frame #24: 0x000000010369825f XUL`Evaluate(JSContext*, JS::Handle<JSObject*>, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::Value*) + 351
    frame #25: 0x00000001036980f9 XUL`JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandle<JS::Value>) + 9
    frame #26: 0x000000010211bf00 XUL`nsJSUtils::EvaluateString(JSContext*, JS::SourceBufferHolder&, JS::Handle<JSObject*>, JS::CompileOptions&, nsJSUtils::EvaluateOptions const&, JS::MutableHandle<JS::Value>, void**) + 640
    frame #27: 0x000000010211bc4a XUL`nsJSUtils::EvaluateString(JSContext*, nsAString_internal const&, JS::Handle<JSObject*>, JS::CompileOptions&, nsJSUtils::EvaluateOptions const&, JS::MutableHandle<JS::Value>, void**) + 154
    frame #28: 0x0000000101ea7576 XUL`mozilla::plugins::parent::_evaluate(_NPP*, NPObject*, _NPString*, _NPVariant*) + 998
    frame #29: 0x0000000101ee0fac XUL`mozilla::plugins::PluginScriptableObjectParent::AnswerNPN_Evaluate(nsCString const&, mozilla::plugins::Variant*, bool*) + 108
    frame #30: 0x0000000101508285 XUL`mozilla::plugins::PPluginScriptableObjectParent::OnCallReceived(IPC::Message const&, IPC::Message*&) + 4133
    frame #31: 0x00000001014fd58d XUL`mozilla::plugins::PPluginModuleParent::OnCallReceived(IPC::Message const&, IPC::Message*&) + 349
    frame #32: 0x000000010132a225 XUL`mozilla::ipc::MessageChannel::DispatchInterruptMessage(IPC::Message const&, unsigned long) + 373
    frame #33: 0x0000000101329a53 XUL`mozilla::ipc::MessageChannel::InterruptCall(IPC::Message*, IPC::Message*) + 1427
    frame #34: 0x00000001013294b8 XUL`mozilla::ipc::MessageChannel::Call(IPC::Message*, IPC::Message*) + 40
    frame #35: 0x00000001014f917d XUL`mozilla::plugins::PPluginModuleParent::CallPPluginInstanceConstructor(mozilla::plugins::PPluginInstanceParent*, nsCString const&, unsigned short const&, nsTArray<nsCString> const&, nsTArray<nsCString> const&, short*) + 749
    frame #36: 0x0000000101edb4d8 XUL`mozilla::plugins::PluginModuleParent::NPP_New(char*, _NPP*, unsigned short, short, char**, char**, _NPSavedData*, short*) + 840
    frame #37: 0x0000000101edb5e5 XUL`non-virtual thunk to mozilla::plugins::PluginModuleParent::NPP_New(char*, _NPP*, unsigned short, short, char**, char**, _NPSavedData*, short*) + 37
    frame #38: 0x0000000101eaa2df XUL`nsNPAPIPluginInstance::Start() + 591
    frame #39: 0x0000000101eb1fae XUL`nsPluginHost::TrySetUpPluginInstance(char const*, nsIURI*, nsPluginInstanceOwner*) + 350
    frame #40: 0x0000000101eb1d37 XUL`nsPluginHost::SetUpPluginInstance(char const*, nsIURI*, nsPluginInstanceOwner*) + 55
    frame #41: 0x0000000101eb1bb6 XUL`nsPluginHost::InstantiatePluginInstance(char const*, nsIURI*, nsObjectLoadingContent*, nsPluginInstanceOwner**) + 342
    frame #42: 0x0000000102368013 XUL`nsObjectLoadingContent::InstantiatePluginInstance(bool) + 451
    frame #43: 0x000000010236d873 XUL`nsObjectLoadingContent::SyncStartPluginInstance() + 179
    frame #44: 0x00000001010857e0 XUL`nsThread::ProcessNextEvent(bool, bool*) + 720
    frame #45: 0x0000000101018051 XUL`NS_ProcessPendingEvents(nsIThread*, unsigned int) + 81
    frame #46: 0x0000000101f8aff7 XUL`nsBaseAppShell::NativeEventCallback() + 119
    frame #47: 0x0000000101f44501 XUL`nsAppShell::ProcessGeckoEvents(void*) + 289
    frame #48: 0x00007fff8f37e731 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #49: 0x00007fff8f36fea2 CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #50: 0x00007fff8f36f62f CoreFoundation`__CFRunLoopRun + 831
    frame #51: 0x00007fff8f36f0b5 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #52: 0x00007fff86d06a0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #53: 0x00007fff86d06685 HIToolbox`ReceiveNextEventCommon + 173
    frame #54: 0x00007fff86d065bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #55: 0x00007fff870b03de AppKit`_DPSNextEvent + 1434
    frame #56: 0x00007fff870afa2b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #57: 0x0000000101f43b16 XUL`-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 86
    frame #58: 0x0000000101f44b6a XUL`nsAppShell::ProcessNextNativeEvent(bool) + 842
    frame #59: 0x0000000101f8b359 XUL`nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool, unsigned int) + 233
    frame #60: 0x0000000101f45057 XUL`nsAppShell::OnProcessNextEvent(nsIThreadInternal*, bool, unsigned int) + 103
    frame #61: 0x00000001010856c7 XUL`nsThread::ProcessNextEvent(bool, bool*) + 439
    frame #62: 0x0000000101018051 XUL`NS_ProcessPendingEvents(nsIThread*, unsigned int) + 81
    frame #63: 0x0000000101f8aff7 XUL`nsBaseAppShell::NativeEventCallback() + 119
    frame #64: 0x0000000101f44501 XUL`nsAppShell::ProcessGeckoEvents(void*) + 289
    frame #65: 0x00007fff8f37e731 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #66: 0x00007fff8f36fea2 CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #67: 0x00007fff8f36f62f CoreFoundation`__CFRunLoopRun + 831
    frame #68: 0x00007fff8f36f0b5 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #69: 0x00007fff86d06a0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #70: 0x00007fff86d06685 HIToolbox`ReceiveNextEventCommon + 173
    frame #71: 0x00007fff86d065bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #72: 0x00007fff870b03de AppKit`_DPSNextEvent + 1434
    frame #73: 0x00007fff870afa2b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #74: 0x0000000101f43b16 XUL`-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 86
    frame #75: 0x00007fff870a3b2c AppKit`-[NSApplication run] + 553
    frame #76: 0x0000000101f44cfb XUL`nsAppShell::Run() + 59
    frame #77: 0x0000000102dc3099 XUL`nsAppStartup::Run() + 41
    frame #78: 0x0000000102d28b52 XUL`XREMain::XRE_mainRun() + 3330
    frame #79: 0x0000000102d28dd6 XUL`XREMain::XRE_main(int, char**, nsXREAppData const*) + 454
    frame #80: 0x0000000102d290f7 XUL`XRE_main + 231
    frame #81: 0x0000000100001e3f firefox`main + 1519
    frame #82: 0x00000001000014f4 firefox`start + 52
Steven, could this also be another instance of bug 996848?  This time we have a nested event loop because of sync XHR.
Depends on: 996848
Flags: needinfo?(smichaud)
It's possible.  But we can't know for sure until we can reproduce this bug.
Flags: needinfo?(smichaud)
I can reproduce something similar on the audiofolks.com webpage on OS X
Where on the page?  With what STR?
And do you need an account?
(In reply to Steven Michaud from comment #4)
> Where on the page?  With what STR?

Loading a topic in the forum. Even just loading the page seems to cause it. You don't need an account.
I actually gave the wrong url. Try this:
http://audiofolks.proboards.com/board/1/listening-tests
I tested with your STR and yesterday's m-c nightly.  I did hang after clicking back and forth in the forums.  Then I tested with my latest tryserver build from bug 996848, and didn't hang.

http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/smichaud@pobox.com-aec5fa8a4997/try-macosx64/firefox-32.0a1.en-US.mac.dmg

Please try this and let us know your results.
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046

Move all DOM bugs that haven't been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.