Bug 749926

Summary: nspluginwrapper breaks 64-bit flash-plugin on vkontakte.ru
Product: [Fedora] Fedora Reporter: Pavel Roskin <plroskin>
Component: nspluginwrapperAssignee: Martin Stransky <stransky>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 16CC: caillon, drfudgeboy, robatino, stransky
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-03 17:25:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Pavel Roskin 2011-10-28 21:34:59 UTC
Description of problem:
I cannot watch videos on vkontakte.ru if nspluginwrapper is installed.

Version-Release number of selected component (if applicable):
nspluginwrapper-1.4.4-2.fc16.x86_64
flash-plugin-11.0.1.152-release.x86_64
firefox-7.0.1-3.fc16.x86_64

How reproducible:
always on one system, never on two others

Steps to Reproduce:
1. Install flash-plugin-11.0.1.152-release.x86_64 from the Adobe site
2. Install nspluginwrapper-1.4.4-2.fc16.x86_64
3. Run firefox in xterm and go to http://vkontakte.ru/video1314517_161089072 (no registration should be needed)
  
Actual results:
The video is not shown.  Following errors appear on the terminal where firefox was run:

$ firefox 

Gdk-ERROR **: The program 'npviewer.bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 139 error_code 8 request_code 139 minor_code 3)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
*** NSPlugin Wrapper *** ERROR: NPP_HandleEvent() wait for reply: Connection closed
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2848):invoke_NPP_HandleEvent: assertion failed: (rpc_method_invoke_possible(plugin->connection))
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2848):invoke_NPP_HandleEvent: assertion failed: (rpc_method_invoke_possible(plugin->connection))


Expected results:
The video is shown

Additional info:

32-bit flash-plugin and nspluginwrapper are not installed.  Uninstalling nspluginwrapper fixes the problem.  Reinstalling it make the problem reappear.
I can watch videos on youtube.com and some other sites with nspluginwrapper installed.

Comment 1 Pavel Roskin 2011-10-29 02:55:20 UTC
The two systems where the problem didn't occur run Fedora 15 with all updates.  The bug only occurred on the Fedora 16 system.  I tried uninstalling and reinstalling nspluginwrapper on a Fedora 15 system, and now I have the same bug on Fedora 15.  It's like something was right, but the reinstallaton broke it.

Here's the data for Fedora 15:
nspluginwrapper-1.4.4-3.fc15.x86_64
flash-plugin-11.0.1.152-release.x86_64
firefox-7.0.1-3.fc15.x86_64

Gdk-ERROR **: The program 'npviewer.bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 122 error_code 8 request_code 139 minor_code 3)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
aborting...
*** NSPlugin Wrapper *** ERROR: NPP_HandleEvent() wait for reply: Connection closed
*** NSPlugin Wrapper *** WARNING:(../src/npw-wrapper.c:2848):invoke_NPP_HandleEvent: assertion failed: (rpc_method_invoke_possible(plugin->connection))

Comment 2 Pavel Roskin 2011-10-29 19:03:51 UTC
I tried to debug the problem (on the F15 system, as I don't have access to the F16 system at the moment).  It turns out npviewer.bin simply crashes due to an X11 error.  I edited npviewer.sh to add the "--sync" argument.  I installed debuginfo for all packages gdb requested, although debuginfo for glibc and nss could not be installed.  I could not get qdb to read symbols for npviewer.bin (it reports "warning: Can't read pathname for load map: Input/output error.")

So I compiled the current nspluginwrapper from git (commit a9e1623e4498aa1212e6f777dec31314b85e4901).  I only replaced npviewer.bin, the rest is from the Fedora package.  Here's the backtrace I got.  It looks like the flash plugin wants gdk to draw some image, but gdk gets an error from X11.  I'm afraid I won't be able to figure out what's wrong and what is the role on nspluginwrapper in all that.

Core was generated by `/usr/lib64/nspluginwrapper/npviewer.bin --sync --plugin /usr/lib64/mozilla/plug'.
Program terminated with signal 6, Aborted.
#0  0x00000032e5435215 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.14.1-1.x86_64 nspr-4.8.8-4.fc15.x86_64
(gdb) where
#0  0x00000032e5435215 in raise () from /lib64/libc.so.6
#1  0x00000032e5436b2b in abort () from /lib64/libc.so.6
#2  0x00000032e744b5ee in g_logv (log_domain=0x7f08a4ac4b77 "Gdk", log_level=<optimized out>, 
    format=0x7f08a4ae377e "%s", args1=0x7fffac759d38) at gmessages.c:557
#3  0x00000032e744b682 in g_log (log_domain=<optimized out>, log_level=<optimized out>, 
    format=<optimized out>) at gmessages.c:577
#4  0x00007f08a4aadb7b in gdk_x_error (error=<optimized out>, display=<optimized out>)
    at gdkmain-x11.c:486
#5  gdk_x_error (display=<optimized out>, error=<optimized out>) at gdkmain-x11.c:456
#6  0x00000032e884810f in _XError (dpy=0x21d8a00, rep=<optimized out>) at XlibInt.c:1583
#7  0x00000032e8844f91 in handle_error (dpy=0x21d8a00, err=0x221bfd0, in_XReply=<optimized out>)
    at xcb_io.c:166
#8  0x00000032e8844fd5 in handle_response (dpy=0x21d8a00, response=0x221bfd0, 
    in_XReply=<optimized out>) at xcb_io.c:266
#9  0x00000032e8845de0 in _XReply (dpy=0x21d8a00, rep=0x7fffac75a060, extra=0, discard=1)
    at xcb_io.c:566
#10 0x00000032e88415a3 in XSync (dpy=0x21d8a00, discard=0) at Sync.c:44
#11 0x00000032e884164b in _XSyncFunction (dpy=<optimized out>) at Synchro.c:35
#12 0x00000032e98098d9 in XShmPutImage (dpy=0x21d8a00, d=10488463, gc=0x221e0f0, image=0x221ac00, 
    src_x=0, src_y=0, dst_x=144, dst_y=103, src_width=720, src_height=358, send_event=0)
    at XShm.c:352
#13 0x00007f08a4a9f44e in gdk_x11_draw_image (drawable=<optimized out>, gc=<optimized out>, 
    image=<optimized out>, xsrc=0, ysrc=0, xdest=144, ydest=103, width=720, height=358)
    at gdkdrawable-x11.c:847
#14 0x00007f08a363ce88 in ?? () from /usr/lib64/mozilla/plugins/libflashplayer.so
#15 0x00007f08a360369b in ?? () from /usr/lib64/mozilla/plugins/libflashplayer.so
#16 0x00007f08a32bfde8 in ?? () from /usr/lib64/mozilla/plugins/libflashplayer.so
#17 0x00007f08a32b655b in ?? () from /usr/lib64/mozilla/plugins/libflashplayer.so
#18 0x00007f08a32bd119 in ?? () from /usr/lib64/mozilla/plugins/libflashplayer.so
#19 0x000000000040e288 in g_NPP_HandleEvent (instance=0x21f3890, event=0x7fffac75a5d0)
    at /home/proski/src/nspluginwrapper/src/npw-viewer.c:4491
#20 0x000000000040e358 in handle_NPP_HandleEvent (connection=0x21efa50)
    at /home/proski/src/nspluginwrapper/src/npw-viewer.c:4518
#21 0x0000000000416a6c in _rpc_dispatch_1 (connection=0x21efa50, message=0x7fffac75a730)
    at /home/proski/src/nspluginwrapper/src/rpc.c:1591
#22 0x0000000000416b2e in _rpc_dispatch (connection=0x21efa50, message=0x7fffac75a730)
    at /home/proski/src/nspluginwrapper/src/rpc.c:1622
#23 0x0000000000416d7a in rpc_dispatch (connection=0x21efa50)
    at /home/proski/src/nspluginwrapper/src/rpc.c:1694
#24 0x000000000040f1b6 in do_main (argc=1, argv=0x7fffac75c978, connection_path=
    0x7fffac75e0ba "/org/wrapper/NSPlugins/libflashplayer.so/19726-2/481531494")
    at /home/proski/src/nspluginwrapper/src/npw-viewer.c:5007
#25 0x000000000040fa71 in main (argc=2, argv=0x7fffac75c978)
    at /home/proski/src/nspluginwrapper/src/npw-viewer.c:5184
(gdb)

Comment 3 Martin Stransky 2011-11-03 10:07:36 UTC
Yeah, I guess is some problem in X/X drivers or so. Just try to remove nspluginwrapper...you don't need it for 64-bit flash. Also, what says:

$ps axf | egrep "nspluginwrapper|plugin"

is nspluginwrapper run in plugin-container or not?

Comment 4 Martin Stransky 2011-11-03 14:22:21 UTC
The video works as for me on F16/x86_64.

Comment 5 Pavel Roskin 2011-11-03 17:12:04 UTC
OK, I'm on up-to-date Fedora 16 now, and I reinstalled nspluginwrapper from Fedora with no changes.

That command doesn't find anything but itself if I'm on the video page I mentioned:

$ ps axf | egrep "nspluginwrapper|plugin"
 4660 pts/3    S+     0:00      \_ egrep --color=auto nspluginwrapper|plugin

I believe that's because npviewer.bin has already crashed.  If I'm playing a video on youtube, the wrapper is found:

$ ps axf | egrep "nspluginwrapper|plugin"
 4795 pts/3    S+     0:00      \_ egrep --color=auto nspluginwrapper|plugin
 4769 ?        Sl     0:01  \_ /usr/lib64/nspluginwrapper/npviewer.bin --plugin /usr/lib64/mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/4665-3/538324956

Comment 6 Martin Stransky 2011-11-03 17:25:49 UTC
okay. If it works w/o nspluginwrapper just remove it, you don't need it for the flash plugin.

Comment 7 Pavel Roskin 2011-11-03 17:43:21 UTC
OK. I hoped to find an easy-to-fix bug, but it looks more complicated than I expected.

Comment 8 James Heather 2012-04-30 17:20:15 UTC
This is happening for me on http://www.bbc.co.uk/news/

It doesn't happen on the BBC iPlayer site.

I can confirm that uninstalling nspluginwrapper avoids the problem. This is also happening on F17 beta.

Why is nspluginwrapper trying to wrap a 64-bit plugin?