Closed
Bug 1178257
Opened 10 years ago
Closed 5 years ago
[e10s] Plugin hang in NPP_Destroy
Categories
(Core Graveyard :: Plug-ins, defect, P3)
Core Graveyard
Plug-ins
Tracking
(e10s+, firefox42 affected)
RESOLVED
WONTFIX
People
(Reporter: jimm, Unassigned)
References
Details
I wonder if there's a way we can make this call internal (async) for the plugin process and just return true to the content process before we actually do it. Clearly we need to get the content process off the stack here.
http://hg.mozilla.org/mozilla-central/annotate/be81b8d6fae9/dom/plugins/ipc/PluginInstanceChild.cpp#l3975
That said, I'm not sure it would avoid this since I'm not sure which process is the instigator of the hang here. If I were to speculate I'd say that there's a message waiting in the input queue of the browser or plugin process that's been marked as non-new by some other thread.
***********************************************************************************
507217f0-aece-442d-8068-66a0f2150623
Windows 7, 6.1.7601 Service Pack 1
NPSWF32_17_0_0_188.dll
***********************************************************************************
PLUGIN
-----------------------------------------------------------------------------------
0 ZwWaitForMultipleObjects
1 WaitForMultipleObjectsEx
2 WaitForMultipleObjectsExImplementation
3 RealMsgWaitForMultipleObjectsEx
4 MsgWaitForMultipleObjects
5 F_1152915508___________________________________
6 F2166389_____________________________________________________________________
7 F_917831355____________________________________________
8 F1315696776________________________________
9 F_1428703866________________________________
10 F845925699_____________________________________
11 F_1887993982_________________________________________________
12 F536410639___________________________________________________________
13 mozilla::plugins::PluginInstanceChild::Destroy() src
14 mozilla::plugins::PluginInstanceChild::AnswerNPP_Destroy(short *) src
15 mozilla::plugins::PPluginInstanceChild::OnCallReceived(IPC::Message const &,IPC::Message * &) src
16 mozilla::plugins::PPluginModuleChild::OnCallReceived(IPC::Message const &,IPC::Message * &) src
17 mozilla::ipc::MessageChannel::DispatchInterruptMessage(IPC::Message const &,unsigned int) src
18 mozilla::ipc::MessageChannel::OnMaybeDequeueOne() src
19 MessageLoop::DoWork() src
20 base::MessagePumpForUI::DoRunLoop() src
21 base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate *,base::MessagePumpWin::Dispatcher *) src
22 base::MessagePumpWin::Run(base::MessagePump::Delegate *) src
23 MessageLoop::RunInternal() src
24 MessageLoop::RunHandler() src
25 MessageLoop::Run() src
26 XRE_InitChildProcess src
27 content_process_main(int,char * * const) src
28 wmain src
29 __tmainCRTStartup
30 BaseThreadInitThunk
31 __RtlUserThreadStart
32 _RtlUserThreadStart
CONTENT
-----------------------------------------------------------------------------------
0 ZwWaitForMultipleObjects
1 WaitForMultipleObjectsEx
2 WaitForMultipleObjectsExImplementation
3 RealMsgWaitForMultipleObjectsEx
4 MsgWaitForMultipleObjects
5 mozilla::ipc::MessageChannel::WaitForInterruptNotify() src
6 mozilla::ipc::MessageChannel::Call(IPC::Message *,IPC::Message *) src
7 mozilla::plugins::PPluginInstanceParent::CallNPP_Destroy(short *) src
8 mozilla::plugins::PluginInstanceParent::Destroy() src
9 mozilla::plugins::PluginModuleParent::NPP_Destroy(_NPP *,_NPSavedData * *) src
10 nsNPAPIPluginInstance::Stop() src
11 nsPluginHost::StopPluginInstance(nsNPAPIPluginInstance *) src
12 nsObjectLoadingContent::DoStopPlugin(nsPluginInstanceOwner *,bool,bool) src
13 nsObjectLoadingContent::StopPluginInstance() src
14 CheckPluginStopEvent::Run() src
15 nsThread::ProcessNextEvent(bool,bool *) src
16 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) src
17 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) src
18 MessageLoop::RunHandler() src
19 MessageLoop::Run() src
20 nsBaseAppShell::Run() src
21 nsAppShell::Run() src
22 XRE_RunAppShell src
23 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) src
24 MessageLoop::RunHandler() src
25 MessageLoop::Run() src
26 XRE_InitChildProcess src
27 content_process_main(int,char * * const) src
28 wmain src
29 __tmainCRTStartup
30 BaseThreadInitThunk
31 __RtlUserThreadStart
32 _RtlUserThreadStart
BROWSER
-----------------------------------------------------------------------------------
0 ZwWaitForMultipleObjects
1 WaitForMultipleObjectsEx
2 WaitForMultipleObjectsExImplementation
3 RealMsgWaitForMultipleObjectsEx
4 mozilla::widget::WinUtils::WaitForMessage(unsigned long) src
5 nsAppShell::ProcessNextNativeEvent(bool) src
6 nsBaseAppShell::DoProcessNextNativeEvent(bool,unsigned int) src
7 nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal *,bool,unsigned int) src
8 nsThread::ProcessNextEvent(bool,bool *) src
9 NS_ProcessNextEvent(nsIThread *,bool) src
10 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) src
11 MessageLoop::RunHandler() src
12 MessageLoop::Run() src
13 nsBaseAppShell::Run() src
14 nsAppShell::Run() src
15 nsAppStartup::Run() src
16 XREMain::XRE_mainRun() src
17 XREMain::XRE_main(int,char * * const,nsXREAppData const *) src
18 XRE_main src
19 do_main src
20 NS_internal_main(int,char * *) src
21 wmain src
22 __tmainCRTStartup
23 BaseThreadInitThunk
24 __RtlUserThreadStart
25 _RtlUserThreadStart
| Reporter | ||
Comment 1•10 years ago
|
||
Most likely the hung queue has to be the plugin, since user input should keep the browser processing events.
Comment 2•10 years ago
|
||
We've got to be careful with this. I'd been floating the idea as a follow-up to async plugin init, but my conversations with Adobe made me somewhat concerned about the consequences. It sounds like Flash makes a lot of NPN calls inside its NPP_Destroy. In my experience Flash does not always check the return codes if one of those NPN calls fails. ;-)
Comment 3•10 years ago
|
||
Do we have STR? Let's straight-up diagnose the problem here if we can, rather than just work around it.
This is not unique to e10s: non-e10s experiences roughly the same plugin hang in F_1152915508.
If we can reproduce this, the full dump from all the processes (including the two FlashPlayerPlugin processes) would be helpful.
Flags: needinfo?(jmathies)
| Reporter | ||
Comment 4•10 years ago
|
||
(In reply to Benjamin Smedberg [:bsmedberg] from comment #3)
> Do we have STR? Let's straight-up diagnose the problem here if we can,
> rather than just work around it.
>
> This is not unique to e10s: non-e10s experiences roughly the same plugin
> hang in F_1152915508.
>
> If we can reproduce this, the full dump from all the processes (including
> the two FlashPlayerPlugin processes) would be helpful.
no STR sorry.
Flags: needinfo?(jmathies)
| Reporter | ||
Comment 6•10 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #5)
> which detector picked this up?
I don't think we identify which detector picks up a hang, filed bug 1178998.
Flags: needinfo?(jmathies)
| Reporter | ||
Updated•10 years ago
|
tracking-e10s:
--- → +
| Reporter | ||
Updated•10 years ago
|
Priority: -- → P3
Comment 7•5 years ago
|
||
Resolving as wont fix, plugin support deprecated in Firefox 85.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
Updated•4 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•