Bug 787058 - acroread crashes frequently and npviewer.bin gets stuck
acroread crashes frequently and npviewer.bin gets stuck
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: nspluginwrapper (Show other bugs)
16
All Linux
unspecified Severity high
: ---
: ---
Assigned To: Martin Stransky
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-02-02 22:40 EST by Orion Poplawski
Modified: 2012-09-12 01:58 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-03 09:30:57 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Orion Poplawski 2012-02-02 22:40:46 EST
Description of problem:

Using acroread with nspluginwrapper is nearly unusable on our systems.  acroread will crash and nspluginwrapper will get stuck preventing viewing of new pdfs until firefox is restarted or npviewer.bin is killed.

orion     4779  1601  0 20:00 ?        00:00:01 /usr/lib/nspluginwrapper/npviewer.bin --plugin /usr/lib/mozilla/plugins/nppdf.so --connection /org/wrapper/NSPlugins/nppdf.so/1601-2/99387343
orion     4790  4779  2 20:00 ?        00:00:05 [acroread] <defunct>


Version-Release number of selected component (if applicable):
nspluginwrapper-1.4.4-3.fc16.i686
AdobeReader_enu-9.4.6-1.i486

Also seen on a x86_64 system.


How reproducible:
Very

Steps to Reproduce:
1. open pdf
2. click back
3. open another pdf
  
Actual results:
Usually get a blank screen.

Expected results:
See the new PDF

strace shows the following repeating:

read(4, 0x9666ba0, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x963e038, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x963e038, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}, {fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 4, 25) = 0 (Timeout)

gdb snapshot:
(gdb) bt
#0  0xb778e424 in __kernel_vsyscall ()
#1  0x4f72cf6e in __GI___poll (fds=0x9681768, nfds=4, timeout=25) at ../sysdeps/unix/sysv/linux/poll.c:83
#2  0x4188883c in g_poll (fds=0x9681768, nfds=4, timeout=25) at gpoll.c:132
#3  0x0804b040 in do_main (connection_path=0xbf8c5da3 "/org/wrapper/NSPlugins/nppdf.so/1601-2/99387343", argv=0xbf8c50f4, 
    argc=1) at ../src/npw-viewer.c:4968
#4  main (argc=<optimized out>, argv=0xbf8c50f4) at ../src/npw-viewer.c:5160
Comment 1 Orion Poplawski 2012-02-02 22:41:39 EST
Actually, not really sure if acroread is "crashing" or just exiting.
Comment 2 Orion Poplawski 2012-02-03 17:04:40 EST
It does appear to be crashing, spewing lots of errors ending with:

(acroread:7024): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GObject'

(acroread:7024): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<invalid>'

(acroread:7024): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(acroread:7024): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GObject'

(acroread:7024): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<invalid>'

(acroread:7024): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(acroread:7024): Gtk-CRITICAL **: IA__gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed

Also posted here: http://forums.adobe.com/thread/958428
Comment 3 Orion Poplawski 2012-02-03 17:20:25 EST
Looks like something is setting npviewer.bin to ignore SIGCHLD before launching acroread, but is this in npviewer.bin or in nppdf.so?

7697  rt_sigaction(SIGCHLD, {SIG_IGN, [SEGV RT_5 RT_6], SA_STACK|0x4648d8}, {SIG_DFL, [], 0}, 8) = 0
7697  <... clone resumed> child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb76d2b28) = 7708
7697  rt_sigaction(SIGCHLD, {SIG_DFL, [], 0},  <unfinished ...>
7697  --- {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7708, si_status=0, si_utime=524, si_stime=218} (Child exited) ---
Comment 4 Martin Stransky 2012-06-11 05:19:39 EDT
The error messages comes from adobe reader plugin and they're printed even if it's run without plugin wrapper (but they're hidden, you need to have a debug-build of firefox to see them), so I don't think it's related here.

Anyway, I'm unable to reproduce...if you have any reproduction steps/broken pdf or so please reopen.
Comment 5 René Genz 2012-07-11 12:57:41 EDT
This is still an issue for Fedora 16 x86_64.
Even with the latest updates I can reproduce this reliable.



I started with a new linux profile and tried opened a random PDF file in firefox.
Immediately after the click on the link to the PDF file output appeared in the terminal.

$ firefox

dirname: missing operand
Try `dirname --help' for more information.
*** NSPlugin Wrapper *** ERROR: NP_Initialize() wait for reply: Message timeout



After some 30 seconds the tab that should have displayed the PDF file changed its color from white to black.
Then heave input/output on the hdd happened for no apparent reason. I guess this is acroread looking for some specific files.

About 3 minutes later the disk I/O ceased, the EULA of acroread appeared  but before I could click on accept it disappeared for no apparent reason.
The firefox pdf tab was still black, opening another PDF file in a new tab resulted in a black tab.
So I closed firefox.



After a few seconds I started  firefox again and opened a random PDF file.
This time the EULA appeared after about 5 seconds after opening the PDF file. This time I could click on the accept button in time. The PDF file was displayed just fine after that.

I can reproduce this problem on my end.
Sometimes it is sufficient to open one PDF file to make the PDF display crash (=black tab).
Sometimes you need to open and close the same PDF file about four times.
What really does work every time is opening about ten PDF files at once.

"Gdk-WARNING **: GdkWindow 0x34005a5 unexpectedly destroyed" messages appear, even if the PDF file can be displayed properly again, after closing a tab that displays a PDF file.


If you want to have more output, tell me the commands I should run for you, please.



In order to minimize the output, I saved the original output to a text file and used in bash shell `awk '!seen[$0]++' <file>` in order to remove duplicate lines, but keeping the order of information.



$ firefox


(firefox:8980): GnomeUI-WARNING **: While connecting to session manager:
** (firefox:8980): CRITICAL **: unable to create '/run/user/genz/dconf'; dconf will not work properly.
** (firefox:8980): WARNING **: The connection is closed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400461 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340045c unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044f unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044e unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340045e unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340045d unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044c unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044d unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044a unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340044b unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400460 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340045f unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400449 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400447 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400446 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400445 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400440 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400465 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400463 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400464 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400462 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400448 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400444 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400443 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400442 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400441 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340043e unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x340043f unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400232 unexpectedly destroyed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkObject'
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkEditable'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_editable_get_chars: assertion `GTK_IS_EDITABLE (editable)' failed
(acroread:9071): Gtk-CRITICAL **: IA__gtk_editable_delete_text: assertion `GTK_IS_EDITABLE (editable)' failed
(acroread:9071): Gtk-CRITICAL **: IA__gtk_editable_insert_text: assertion `GTK_IS_EDITABLE (editable)' failed
(acroread:9071): Gtk-CRITICAL **: IA__gtk_editable_set_editable: assertion `GTK_IS_EDITABLE (editable)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkEntry'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_entry_get_layout: assertion `GTK_IS_ENTRY (entry)' failed
(acroread:9071): Pango-CRITICAL **: pango_layout_get_pixel_extents: assertion `PANGO_IS_LAYOUT (layout)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkObject'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_set_sensitive: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkEditable'
(acroread:9071): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkEntry'
(acroread:9071): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkObject'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GObject'
(acroread:9071): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GObject'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): Gdk-CRITICAL **: IA__gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid cast from `(null)' to `GObject'
(acroread:9071): GLib-GObject-WARNING **: invalid cast from `(null)' to `GtkObject'
(acroread:9071): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed
(acroread:9071): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'
(acroread:9071): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRange'
(acroread:9071): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<invalid>'
(acroread:9071): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkEditable'
(acroread:9071): Gtk-CRITICAL **: IA__gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c6 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c1 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005b4 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005b3 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c3 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c2 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005b1 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005b2 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005af unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005b0 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c5 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c4 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005ae unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005ac unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005ab unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005aa unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a5 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005ca unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c8 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c9 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005c7 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005ad unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a9 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a8 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a7 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a6 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a3 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a4 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34005a0 unexpectedly destroyed
(acroread:9071): Gdk-CRITICAL **: IA__gdk_window_get_position: assertion `GDK_IS_WINDOW (window)' failed
(acroread:9071): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkRange'
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400706 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x3400701 unexpectedly destroyed
(acroread:9071): Gdk-WARNING **: GdkWindow 0x34006f4 unexpectedly destroyed
Comment 6 René Genz 2012-07-11 13:10:47 EDT
The status of this bug did not changed after I made my comment.
I am not able to change the status.
Can someone reopen this bug, please?



I forgot to mention, that on Fedora 14 x86_64 this problem was present as well, but reloading the page solved the problem. Reloading does not make the cut anymore.

In order to get the nspluginwrapper to work I had to install on F14 x86_64:
yum install -y nspluginwrapper.i*

For F16 x86_64 I had to install:
yum install -y nspluginwrapper.i* nspluginwrapper

The output of /usr/lib/nspluginwrapper/plugin-config is fine, though.




In order to minimize the output of acread in the terminal, I installed the following packages on F16 x86_64 standard installation:
# required in order to start acroread
yum install -y libxml2.i*
# firefox plugin wrappers
yum install -y xulrunner
yum install -y xulrunner.i*
yum install -y nspluginwrapper.i*
yum install -y nspluginwrapper
# acroread -- (acroread:12225): Gtk-WARNING **: Unable to locate theme engine in module_path: "oxygen-gtk",
yum install -y oxygen-gtk.noarch
yum install -y oxygen-gtk2
yum install -y oxygen-gtk2.i*
yum install -y oxygen-gtk3
# acroread -- Gtk-Message: Failed to load module "canberra-gtk-module"
yum install -y libcanberra.i*
yum install -y libcanberra-gtk2.i*
yum install -y libcanberra-gtk3.i*
# acroread -- (npviewer.bin:15454): Gtk-WARNING **: Unable to locate theme engine in module_path: "clearlooks",
yum install -y gtk2-engines.i*
# $ acroread http://random/pdf/file.pdf
# p11-kit: couldn't load module: /usr/lib/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory
yum install -y gnome-keyring.i*
Comment 7 Martin Stransky 2012-09-03 09:30:57 EDT
Package nspluginwrapper-1.4.4-11.fc16 should help here (It tries to restart the acroread plugin when crashes). It's all I can do with this closed-source blob.
Comment 8 Orion Poplawski 2012-09-05 18:28:12 EDT
Well, it doesn't help because apparently while acroread crashes, the plugin doesn't.  Perhaps this just can't be fixed in nspluginwrapper, so I'm leaving this closed for now.
Comment 9 Martin Stransky 2012-09-06 06:24:11 EDT
The plugin does not crash but returns an error from NPP_New so we can detect that the acroread plugin is dead and needs to be restarted. People reports that the workaround works fine, do you have any issues with that?
Comment 10 Orion Poplawski 2012-09-06 12:50:51 EDT
I guess what I'm seeing now is that acroread is being run without npviewer.bin on my 32-bit F17 machine with nspluginwrapper-1.4.4-11.fc17.  When acroread crashes in this mode, firefox doesn't appear to restart it.  I thought it should run through npviewer.bin by default.

INFO: Check wrap /usr/lib/mozilla/plugins/nppdf.so to /usr/lib/mozilla/plugins-wrapped/nswrapper_32_32.nppdf.so...
INFO: FAIL: /usr/lib/mozilla/plugins-wrapped/nswrapper_32_32.nppdf.so
INFO:         It isn't installed.
INFO: Check link /usr/lib/mozilla/plugins/nppdf.so to /usr/lib/mozilla/plugins-wrapped/nppdf.so...
INFO: OK:   /usr/lib/mozilla/plugins-wrapped/nppdf.so
INFO:         is correct plugin 1
INFO:         can be wrapped 0, is wrapped 0
INFO:         can be linked 1, is linked  1
Comment 11 Martin Stransky 2012-09-11 02:14:26 EDT
Yes, that's right. I removed the native plugins (32 bit->32 bit) wrapping, because npviewer.bin causes the acroread crashes and the restart is just a workaround for this. (Bug 841798)
Comment 12 Orion Poplawski 2012-09-11 11:08:19 EDT
Apparently bug 841798 is private.  Well, hopefully adobe will fix their plugin someday.  Meanwhile it does seem like you've done all you can in nspluginwrapper.  Thanks.
Comment 13 Martin Stransky 2012-09-12 01:58:51 EDT
You may see Bug 841798, it was private by mistake.

Note You need to log in before you can comment on or make changes to this bug.