Closed Bug 589642 Opened 14 years ago Closed 14 years ago

Excessive beachballing (like a hang) when trying to load a web page with a Flash video embedded

Categories

(Core Graveyard :: Plug-ins, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: ehsan.akhgari, Unassigned)

References

()

Details

This happened when I was trying to load <http://www.cbc.ca/video/#/Shows/Q_on_bold/Other/ID=1329922589>.  Firefox became unresponsive and started beachballing.  I attached gdb to firefox and plugin-container and got the following backtraces:

(gdb) bt 
#0  0x903f2066 in __semwait_signal ()
#1  0x903f1d22 in _pthread_cond_wait ()
#2  0x903f1875 in pthread_cond_timedwait$UNIX2003 ()
#3  0x027070f9 in pt_TimedWait ()
#4  0x02707e4f in PR_WaitCondVar ()
#5  0x00c88d16 in mozilla::ipc::SyncChannel::WaitForNotify ()
#6  0x00c865a4 in mozilla::ipc::RPCChannel::Call ()
#7  0x00c8c6c1 in mozilla::plugins::PPluginModuleParent::CallPPluginInstanceConstructor ()
#8  0x00c6eff4 in mozilla::plugins::PluginModuleParent::NPP_New ()
#9  0x00ad2c02 in nsNPAPIPluginInstance::InitializePlugin ()
#10 0x00adecdf in nsPluginHost::TrySetUpPluginInstance ()
#11 0x00adefe5 in nsPluginHost::SetUpPluginInstance ()
#12 0x00ade768 in nsPluginHost::InstantiateEmbeddedPlugin ()
#13 0x0023e5ca in nsObjectFrame::InstantiatePlugin ()
#14 0x00245456 in nsObjectFrame::Instantiate ()
#15 0x003f0213 in nsObjectLoadingContent::Instantiate ()
#16 0x003f14a5 in nsObjectLoadingContent::EnsureInstantiation ()
#17 0x005d4163 in nsHTMLPluginObjElementSH::GetPluginInstanceIfSafe ()
#18 0x005d8e0f in nsHTMLPluginObjElementSH::NewResolve ()
#19 0x00914488 in XPC_WN_Helper_NewResolve ()
#20 0x00ed0283 in js_LookupPropertyWithFlags ()
#21 0x00ed2acf in js_GetPropertyHelper ()
#22 0x00ea8f96 in js::Interpret ()
#23 0x00eba044 in js::InvokeCommon<int (*)(JSContext*, JSObject*, unsigned int, js::Value*, js::Value*)> ()
#24 0x00ebba7f in js::Invoke ()
#25 0x00ebbecc in js::InternalInvoke ()
#26 0x00e543b5 in JS_CallFunctionValue ()
#27 0x009053ba in nsXPCWrappedJSClass::CallMethod ()
#28 0x008ffe23 in nsXPCWrappedJS::CallMethod ()
#29 0x00d59ea5 in PrepareAndDispatch ()
#30 0x00d55f90 in nsXPTCStubBase::Stub3 ()
#31 0x004526ba in nsEventListenerManager::HandleEventSubType ()
#32 0x00452ce0 in nsEventListenerManager::HandleEventInternal ()
#33 0x00470017 in nsEventTargetChainItem::HandleEventTargetChain ()
#34 0x004709fe in nsEventDispatcher::Dispatch ()
#35 0x00470bef in nsEventDispatcher::DispatchDOMEvent ()
#36 0x003b6013 in nsDocument::DispatchEvent ()
#37 0x0039359a in nsContentUtils::DispatchTrustedEvent ()
#38 0x003bfee7 in nsDocument::DispatchContentLoadedEvents ()
#39 0x003c6561 in nsRunnableMethodImpl<void (nsDocument::*)(), true>::Run ()
#40 0x00d44f4c in nsThread::ProcessNextEvent ()
#41 0x00d03f87 in NS_ProcessPendingEvents_P ()
#42 0x00c0a7c2 in nsBaseAppShell::NativeEventCallback ()
#43 0x00bce378 in nsAppShell::ProcessGeckoEvents ()
#44 0x95c1f0fb in __CFRunLoopDoSources0 ()
#45 0x95c1cbbf in __CFRunLoopRun ()
#46 0x95c1c094 in CFRunLoopRunSpecific ()
#47 0x95c1bec1 in CFRunLoopRunInMode ()
#48 0x93ebff9c in RunCurrentEventLoopInMode ()
#49 0x93ebfc8d in ReceiveNextEventCommon ()
#50 0x93ebfbd6 in BlockUntilNextEventMatchingListInMode ()
#51 0x927ada89 in _DPSNextEvent ()
#52 0x927ad2ca in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#53 0x9276f55b in -[NSApplication run] ()
#54 0x00bcd9aa in nsAppShell::Run ()
#55 0x00a485e7 in nsAppStartup::Run ()
#56 0x0000ed59 in XRE_main ()
#57 0x00001d48 in main ()


(gdb) bt
#0  0x903ec51c in _longjmp ()
#1  0x83e58955 in ?? ()
#2  0x5d8958ec in ?? ()


As soon as I detached both gdb instances, Firefox started to be responsive again.  I couldn't reproduce the problem when I tried to reload that page.

This is on a nightly built from http://hg.mozilla.org/mozilla-central/rev/e486018949e2.
Is this a regression, and does it still happen with OOPP off?

Otherwise this is just "the plugin is taking a long time to respond to NPP_New".
I only saw this once.  I think I waited about 1-2 minutes before I attempted to attach gdb, during which time the entire browser window had became non-responsive.  Do we need to block on the plugin from the UI thread like this?
Yes.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.