Bug 607884

Summary: npviewer.bin errors bringing down firefox
Product: [Fedora] Fedora Reporter: Bruce Brackbill <brackbillbruce>
Component: nspluginwrapperAssignee: Martin Stransky <stransky>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: low    
Version: 13CC: bugzilla.redhat, caillon, ebaron, eddie, jmanton, stransky, udovdh
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-01-03 14:28:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bruce Brackbill 2010-06-25 05:39:28 UTC
Description of problem:

When starting the flash player, npviewer.bin errors and goes into an endless loop, repeating the error indefinitely and freezing up Firefox. Killing Firefox does not stop npviewer.bin, it has to be killed separately.

Version-Release number of selected component (if applicable):

firefox-3.6.4-1.fc13.i686
Everything updated including from testing repo 

How reproducible:

You might have luck reproducing this on any page that includes a flash player, but I found this page to trigger it every time.

Steps to Reproduce:

Go to http://www.redhat.com/promo/summit/2010/highlights/ and click play on the flash player. Do not choose a video on the left ( I think not choosing a video may help trigger this bug ), just click play then click left/right all around on the player ).  Firefox will freeze up and the error will present itself in .xsession-errors:

[bruce@localhost ~]$ tail -f .xsession-errors


*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** ERROR: NPN_InvalidateRect() wait for reply: Connection reset by peer
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
/usr/lib/firefox-3.6/run-mozilla.sh: line 131:  3916 Killed                  "$prog" ${1+"$@"}
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))

<huge snip>

 (rpc_method_invoke_possible(g_rpc_connection))
*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
^C
[bruce@localhost ~]$

Comment 1 Martin Stransky 2010-06-25 08:22:42 UTC
Does firefox recover from the freeze or it just crashes? I have an idea what's going on here but it's caused by NPAPI plug-ins model which is synchronous so firefox is just waiting for flash response....

Comment 2 Bruce Brackbill 2010-06-25 09:53:24 UTC
I let it sit there for 10 minutes and it did not recover.  It just hangs.  But does not fully crash.

Here is a better description of what is happening:

1) Opening Firefox from the command line, I open the page in question and I see the warning: "*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()"

2) Without choosing a video from the left, I right click in the flash player.  Firefox freezes/hangs.  At this point there are no additional warning printed to the terminal.  

3) The only way of closing firefox is to force quit.  After firefox is killed it's at this point that the NSPlugin spews out: "*** NSPlugin Viewer  *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))" over and over again until I kill npviewer.bin 

------------

On the other-hand if at the above Step Number 3, I kill npviewer.bin instead of Firefox, then I get the errors:

*** NSPlugin Wrapper *** ERROR: NPP_HandleEvent() wait for reply: Connection closed
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2537):invoke_NPP_HandleEvent: assertion failed: (rpc_method_invoke_possible(plugin->connection))

<snip repeat 6 times>

*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2537):invoke_NPP_HandleEvent: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** ERROR: NPObject 0xa32624e8 is no longer valid!

..and Firefox recovers and npviewer.bin is restarted.  Not much of a workaround to say the least, but maybe this info will help.

Until yesterday's update to 3.6.4, I haven't experienced Flash hanging Firefox like this for probably a year or more.  It's interesting that Firefox's new "plugin in it's own process" is giving me the exact opposite of what is advertised.

Comment 3 Bruce Brackbill 2010-06-25 19:29:39 UTC
A quick search for: WARNING: unhandled variable 18, returns the following bug: https://bugs.launchpad.net/ubuntu/+source/nspluginwrapper/+bug/592492

It suggests that setting "dom.ipc.plugins.enabled=true" in about:config.   With this set right clicking on the flash player correctly shows the context menu and does not freeze Firefox.  This appears to be an effective workaround but not a fix since a firefox config setting should not freeze Firefox/NSPlugin.  

This is what I see for the page http://www.redhat.com/promo/summit/2010/highlights/ from terminal with "dom.ipc.plugins.enabled=true":

bruce@localhost ~]$ firefox
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
  (parent won, so we're not deferring)
  (parent won, so we're deferring)
  (processing deferred in-call)
  (child won, so we're deferring)
  (child won, so we're not deferring)
  (processing deferred in-call)

Comment 4 Martin Stransky 2010-06-28 08:55:47 UTC
I think I can reproduce the issue. Flash plug-in can block in NPP_HandleEvent or NPP_SetWindow and firefox/nspluginwrapper freezes because of long RPC timeout.

Comment 5 Jonathan Manton 2010-06-28 17:41:16 UTC
An additional impact of this bug is that it puts endless warnings in the user's .xsession-errors file, filling the filesystem.  I just deleted a user's .xsession-errors file that was 1.9GB in size.

Comment 6 Martin Stransky 2010-06-29 12:32:34 UTC
nspluginwrapper-1.3.0-13.fc14 has removed debug outputs and lowered the timeout value for RPC messages, let see how it helps.

Comment 7 Kaare Fiedler Christiansen 2010-12-04 18:58:42 UTC
Sorry, I've just seen the exact same behaviour on nspluginwrapper-1.3.0-15.fc14.

The .xsession-errors file was well above 3 GB in size, before I found out what was filling up my disk. The contents were exactly as described above, and there was indeed a rogue nspluginwrapper process. However, I believe my trouble started after trying to open a PDF-file with the Adobe Reader plugin. I'm not 100% sure, because I didn't notice the trouble until quite some time afterwards.

My .xsession-errors was filling up with lines like
*** NSPlugin Viewer *** WARNING:(../src/npw-viewer.c:1291):invoke_NPN_InvalidateRect: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))

It is possible that I had updated my system without restarting, so I guess something unexpected may have happened on that account. I can provide the list of updated packages if it seems relevant.

It seems this bug is not yet solved, however I can't reopen the bug.

Comment 8 udo 2010-12-31 15:51:16 UTC
Also seen in F14, just after upgrading from F13 to F14.
Downgrading from 1.3.0-15.fc14 to 1.3.0-14.fc14 does not help.
messages like:

Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:1858):invoke_NPP_Destroy: assertion failed: (rpc_method_invoke_possible(plugin->connection))

So what is the workaround?
Urgent as this bug block yout00b.

Comment 9 udo 2010-12-31 16:13:34 UTC
More complete log:

*** NSPlugin Wrapper *** ERROR: NPP_WriteReady() wait for reply: Message timeout
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2394):invoke_NPP_Write: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2239):invoke_NPP_DestroyStream: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2123):invoke_NPP_URLNotify: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2344):invoke_NPP_WriteReady: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2394):invoke_NPP_Write: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2239):invoke_NPP_DestroyStream: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2123):invoke_NPP_URLNotify: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2344):invoke_NPP_WriteReady: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2394):invoke_NPP_Write: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2239):invoke_NPP_DestroyStream: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2123):invoke_NPP_URLNotify: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2344):invoke_NPP_WriteReady: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2394):invoke_NPP_Write: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2239):invoke_NPP_DestroyStream: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2123):invoke_NPP_URLNotify: assertion failed: (rpc_method_invoke_possible(plugin->connection))

Comment 10 udo 2010-12-31 16:59:36 UTC
FWIW: flash has been working OK, using flash-plugin.i386 and the nspluginwrapper ever since putting linux on this box (2007).
Starting with F14, which is not NEW anymore, I find immediately after upgrading that starting firefox is so much slower (while opening the tabs it remembered). youtube windows are grey. I get the errors I posted.
I did try mozilla-plugin-config -i -g -v but that didn't matter much.
Same for reinstalling flash-plugin etc.
While googling I see that this is an old problem that has been around since at least F10. So why does it pop up here and now?
This is on a 4-core AMD box with plenty of RAM, so that should not be a reason.
Please have a look into this and fix this extremely important issue.
What can I do to help?

Comment 11 Martin Stransky 2011-01-03 14:28:24 UTC

*** This bug has been marked as a duplicate of bug 666865 ***