After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 628612 - Crash in NSPluginWrapper when using Flash player - Firefox works
Crash in NSPluginWrapper when using Flash player - Firefox works
Status: RESOLVED OBSOLETE
Product: epiphany
Classification: Core
Component: General
2.30.x
Other Linux
: Normal critical
: ---
Assigned To: Epiphany Maintainers
Epiphany Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-09-02 12:44 UTC by Milan Bouchet-Valat
Modified: 2011-11-24 09:03 UTC
See Also:
GNOME target: ---
GNOME version: 2.29/2.30



Description Milan Bouchet-Valat 2010-09-02 12:44:23 UTC
In Ubuntu 10.04, Epiphany is constantly crashing when viewing Flash sites, making it impossible to use. It's a pity that this proprietary plugin is plaguing Ephy's stability, but it seems something can be done about this, since Firefox doesn't suffer from this bug.

The assertion error we get is:
/build/buildd/nspluginwrapper-1.2.2/src/npw-rpc.c :1225 : do_recv_NPObject: Assertion failed "npobj != ((void *)0)".

So it seems the problem is in NSPluginWrapper. I don't know whether the culprit is Flash, NSPluginWrapper, WebKit or Epiphany, so I'm reporting here, in hope we can start the investigation. Else, Ubuntu LTS users will have to forget about Epiphany for the next 2 years, which would be sad...

Unfortunately, the stack trace we get is very poor ATM - we only have the assertion failure. If you think it would be worth it, I can try again getting a better trace. Else I can ask NSPluginWrapper people, who may know what this error message means. If Firefox manages to work with the same versions, there must be a solution! ;-)

Regards


Epiphany 2.30.2, WebKit 1.2.0-1, Flash Player 10.1.82.76 (64bits).

https://bugs.launchpad.net/ubuntu/+source/epiphany-browser/+bug/448234
Comment 1 Xan Lopez 2010-09-02 12:47:45 UTC
Maybe stating the obvious: if NSPluginWrapper crashes that much you could try to, you know, just not use it.

That being said, the better the trace you can provide, the easier will be for us to figure things out.
Comment 2 Milan Bouchet-Valat 2010-09-02 13:08:24 UTC
I wish I could! Don't believe I enjoy dealing with those silly bugs... ;-)

I'm not a specialist of the total mess that constitutes Flash & 64-bit on Linux, but AFAIK Adobe no longer provides a 64-bit version of their Flash player, and the last 64-bit released version suffers from security breaches. See for example:
http://arstechnica.com/open-source/news/2010/06/64-bit-flash-for-linux-dropped-as-adobe-preps-next-version.ars

Anyway, it's hard to ship a version Adobe has discontinued, since it would need to be downloaded from their servers, which is no longer possible. Even on Canonical "partners" repository, only a 32-bit version is available.

So I'm trying to get a better trace, if possible.
Comment 3 Milan Bouchet-Valat 2010-09-02 14:12:19 UTC
Here's a complete trace, with only symbols from the Flash plugin itself missing.

 #0  0x00007f59a41faa75 in raise () from /lib/libc.so.6
 No symbol table info available.
 #1  0x00007f59a41fe5c0 in abort () from /lib/libc.so.6
 No symbol table info available.
 #2  0x00007f59a41f3941 in __assert_fail () from /lib/libc.so.6
 No symbol table info available.
 #3  0x00007f598d0408a9 in ?? ()
    from /var/lib/flashplugin-installer/npwrapper.libflashplayer.so
 No symbol table info available.
[Same until #12]

 #13 0x00007f59a73eb784 in WebCore::PluginView::start (this=0x7f5996968680)
     at ../WebCore/plugins/PluginView.cpp:234
         dropAllLocks = {<WTFNoncopyable::Noncopyable> = {<WTF::FastAllocBase> = {<No data fields>}, <No data fields>}, m_lockCount = 2856904744, 
           m_lockBehavior = JSC::SilenceAssertionsOnly}
         npErr = <value optimized out>
 #14 0x00007f59a73eba4b in WebCore::PluginView::init (this=0x7f5996968680)
     at ../WebCore/plugins/PluginView.cpp:192
 No locals.
 #15 0x00007f59a738b768 in WebCore::ScrollView::addChild (this=0x7f598f689c80, 
     prpChild=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
 ) at ../WebCore/platform/ScrollView.cpp:66
         child = 0x7f5996968680
 #16 0x00007f59a74a1503 in moveWidgetToParentSoon (child=0x7f5996968680, 
     parent=0x7f598f689c80) at ../WebCore/rendering/RenderWidget.cpp:84
 No locals.
 #17 0x00007f59a74a1754 in WebCore::RenderWidget::setWidget (
     this=0x7f598df2d920, widget=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
 ) at ../WebCore/rendering/RenderWidget.cpp:187
 No locals.
 #18 0x00007f59a7474317 in WebCore::RenderPart::setWidget (this=0xb06, 
     widget=<value optimized out>) at ../WebCore/rendering/RenderPart.cpp:50
 No locals.
 #19 0x00007f59a72dafc2 in WebCore::FrameLoader::loadPlugin (
     this=0x7f598f60a850, renderer=0x7f598df2d920, url=<value optimized out>, 
     mimeType=..., paramNames=..., paramValues=..., useFallback=false)
     at ../WebCore/loader/FrameLoader.cpp:1380
         element = 0x7f5995b0a5b0
 #20 0x00007f59a72e2215 in WebCore::FrameLoader::requestObject (
     this=0x7f598f60a850, renderer=0x7f598df2d920, url=<value optimized out>, 
     frameName=..., mimeType=..., paramNames=..., paramValues=...)
     at ../WebCore/loader/FrameLoader.cpp:1285
         settings = 0x7f599697ef00
         completedURL = {m_string = {
             m_impl = {<WTF::FastAllocBase> = {<No data fields>}, 
               m_ptr = 0x7f5995b43ab0}}, m_isValid = true, 
           m_protocolInHTTPFamily = true, m_schemeEnd = 4, m_userStart = 7, 
           m_userEnd = 7, m_passwordEnd = 7, m_hostEnd = 18, m_portEnd = 18, 
           m_pathAfterLastSlash = 27, m_pathEnd = 50, m_queryEnd = 50, 
           m_fragmentEnd = 50}
         useFallback = false
 #21 0x00007f59a7438b48 in WebCore::RenderEmbeddedObject::updateWidget (
     this=0x7f598df2d920, onlyCreateNonNetscapePlugins=<value optimized out>)
     at ../WebCore/rendering/RenderEmbeddedObject.cpp:269
         embed = 0x0
         embedOrObject = <value optimized out>
         uniqueParamNames = {<WTF::FastAllocBase> = {<No data fields>}, 
           m_impl = {static m_minTableSize = <optimized out>, 
             static m_maxLoad = <optimized out>, 
             static m_minLoad = <optimized out>, m_table = 0x0, 
             m_tableSize = 0, m_tableSizeMask = 0, m_keyCount = 0, 
             m_deletedCount = 0}}
         codebase = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, 
             m_ptr = 0x0}}
         child = <value optimized out>
         attributes = 0xa
         url = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, 
             m_ptr = 0x7f5995b43ab0}}
         serviceType = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, 
             m_ptr = 0x7f5995b3ca20}}
         paramValues = {<WTF::FastAllocBase> = {<No data fields>}, m_size = 10, 
           m_buffer = {<WTF::VectorBufferBase<WebCore::String>> = {<WTFNoncopyable::Noncopyable> = {<WTF::FastAllocBase> = {<No data fields>}, <No data fields>}, m_buffer = 0x7f59959e9b00, m_capacity = 16}, <No data fields>}}
         frame = 0x7f598f60a800
         paramNames = {<WTF::FastAllocBase> = {<No data fields>}, m_size = 10,
           m_buffer = {<WTF::VectorBufferBase<WebCore::String>> = {<WTFNoncopyable::Noncopyable> = {<WTF::FastAllocBase> = {<No data fields>}, <No data fields>}, m_buffer = 0x7f59959e9b80, m_capacity = 16}, <No data fields>}}
 #22 0x00007f59a7344cf3 in WebCore::FrameView::updateWidgets (
     this=0x7f598f689c80) at ../WebCore/page/FrameView.cpp:1463
         object = 0x7f598df2d920
         i = 0
         objectVector = {<WTF::FastAllocBase> = {<No data fields>}, m_size = 1, 
           m_buffer = {<WTF::VectorBufferBase<WebCore::RenderEmbeddedObject*>> = {<WTFNoncopyable::Noncopyable> = {<WTF::FastAllocBase> = {<No data fields>}, <No data fields>}, m_buffer = 0x7f59959b4b00, m_capacity = 16}, <No data fields>}}
 #23 0x00007f59a734530d in WebCore::FrameView::performPostLayoutTasks (
     this=0x7f598f689c80) at ../WebCore/page/FrameView.cpp:1493
         root = <value optimized out>
 #24 0x00007f59a7347288 in WebCore::FrameView::layout (this=0x7f598f689c80, 
     allowSubtree=<value optimized out>) at ../WebCore/page/FrameView.cpp:751
         root = 0x7f598df2d420
         hMode = WebCore::ScrollbarAlwaysOff
         vMode = WebCore::ScrollbarAlwaysOff
         layer = 0x7f598df2d558
         document = 0x7f59959d6400
         subtree = <value optimized out>
         disableLayoutState = 44
 #25 0x00007f59a7392166 in WebCore::ThreadTimers::sharedTimerFiredInternal (
     this=0x7f5996961870) at ../WebCore/platform/ThreadTimers.cpp:112
         interval = <value optimized out>
         fireTime = 1283434016.9217701
         timeToQuit = 1283434016.97177
 #26 0x00007f59a7643c72 in timeout_cb ()
     at ../WebCore/platform/gtk/SharedTimerGtk.cpp:48
 No locals.
 #27 0x00007f59a4ce309b in ?? () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #28 0x00007f59a4ce28c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #29 0x00007f59a4ce6748 in ?? () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #30 0x00007f59a4ce6c55 in g_main_loop_run () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #31 0x00007f59a65abbb7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
 No symbol table info available.
 #32 0x0000000000435423 in main (argc=1, argv=0x7fff2ede77e8)
     at /build/buildd/epiphany-browser-2.30.2/src/ephy-main.c:741
         option_context = <value optimized out>
         option_group = <value optimized out>
         proxy = <value optimized out>
        error = 0x0
         user_time = 15698088

Also, Ephy is printing a great deal of warnings to the console. These are what happens when viewing directly a Youtube video:
epiphany-browser 
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded
java version "1.6.0_18"
(epiphany:10089): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed

(epiphany:10089): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed

OpenJDK Runtime Environment (IcedTea6 1.8.1) (6b18-1.8.1-0ubuntu1)
OpenJDK 64-Bit Server VM (build 16.0-b13, mixed mode)
** (epiphany:10089): DEBUG: NP_Initialize
** (epiphany:10089): DEBUG: NP_Initialize succeeded

(epiphany:10089): GLib-CRITICAL **: g_hash_table_foreach: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
*** NSPlugin Wrapper *** ERROR: no valid NPP -> PluginInstance mapping found

(epiphany:10089): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
*** NSPlugin Wrapper *** ERROR: no valid NPP -> PluginInstance mapping found

(epiphany:10089): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_find: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed

(epiphany:10089): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
*** NSPlugin Wrapper *** ERROR: no valid NPP -> PluginInstance mapping found

(epiphany:10089): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
epiphany-browser: /build/buildd/nspluginwrapper-1.2.2/src/npw-rpc.c :1225 : do_recv_NPObject:  L'assertion « npobj != ((void *)0) » a échoué.
*** NSPlugin Viewer  *** ERROR: NPN_GetProperty() wait for reply: Message timeout
*** NSPlugin Viewer  *** WARNING:(/build/buildd/nspluginwrapper-1.2.2/src/npw-viewer.c:862):invoke_NPN_GetValue: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
*** NSPlugin Viewer  *** WARNING: unhandled variable 18 (<unknown variable>) in NPN_GetValue()
*** NSPlugin Viewer  *** WARNING:(/build/buildd/nspluginwrapper-1.2.2/src/npw-viewer.c:862):invoke_NPN_GetValue: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
Aborted (core dumped)
Comment 4 Akhil Laddha 2010-11-20 04:53:53 UTC
Duplicate of bug 607507 ?
Comment 5 Stanislav Brabec 2011-04-22 13:16:46 UTC
Not a duplicate of bug 607507.

nspluginwrapper does not crash much, just Flash inside crashes often.

nspluginwrapper should protect browser from the plugin crash.

In that case the nspluginwrapper itself crashed (exactly it aborted).

I got a similar crash just once over a time, but accidentally did not save the backtrace.

I'll try to fix the problem, or at least replace abort() by something less ugly.
Comment 6 Jean-François Fortin Tam 2011-11-17 17:15:19 UTC
Is this still relevant given that epiphany switched to webkit? Webkit does not use nspluginwrapper does it?
Comment 7 Milan Bouchet-Valat 2011-11-18 10:48:40 UTC
This was with a WebKit-enabled Epiphany. But this was in Ubuntu 10.04. Since then, many things have changed, Flash 11 with 64 support was released, and I've switched to Fedora, where it seems to work. Closing.
Comment 8 Milan Bouchet-Valat 2011-11-24 09:03:19 UTC
It seems to still happen in Ubuntu, if you're interested:
https://bugs.launchpad.net/ubuntu/+source/epiphany-browser/+bug/448234