Summary: | [Qt] QtWebKit crashes while initializing flash plugin 10.1.53.64... | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Dawit A. <adawit> | ||||||
Component: | WebKit Qt | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | CLOSED FIXED | ||||||||
Severity: | Major | CC: | girish, hausmann, kent.hansen | ||||||
Priority: | P1 | Keywords: | Qt, QtTriaged | ||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | PC | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
Description
Dawit A.
2010-06-14 06:52:58 PDT
And here is the same crash and backtrace using QtTestBrowser and visiting http://labs.trolltech.com/blogs: [dalemayehu@xxxxxxx]$ gdb ./QtTestBrowser GNU gdb (GDB) 7.1 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/local/build/Misc/webkit/Debug/bin/QtTestBrowser...done. (gdb) run Starting program: /usr/local/build/Misc/webkit/Debug/bin/QtTestBrowser [Thread debugging using libthread_db enabled] [New Thread 0xb23e3b70 (LWP 9368)] QtTestBrowser(9365)/ KSharedDataCache::Private::mapSharedMemory: Opening cache "/var/tmp/kdecache-dalemayehu/icon-cache.kcache" page size is 4096 QtTestBrowser(9365)/ KSharedDataCache::Private::mapSharedMemory: Attached to cache, determining if it must be initialized QtTestBrowser(9365)/ KSharedDataCache::Private::mapSharedMemory: Cache fully initialized -- attached to memory mapping QtTestBrowser(9365)/ KSharedDataCache::Private::mapSharedMemory: 4808704 bytes available out of 10485760 [New Thread 0xafa46b70 (LWP 9369)] (process:9365): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init() (process:9365): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (process:9365): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed Program received signal SIGSEGV, Segmentation fault. 0xadcec9fc in gdk_pixbuf_new_from_data () from /usr/lib/libgdk_pixbuf-2.0.so.0 (gdb) bt #0 0xadcec9fc in gdk_pixbuf_new_from_data () from /usr/lib/libgdk_pixbuf-2.0.so.0 #1 0xadcf473f in gdk_pixbuf_from_pixdata () from /usr/lib/libgdk_pixbuf-2.0.so.0 #2 0xadcf7e53 in gdk_pixbuf_new_from_inline () from /usr/lib/libgdk_pixbuf-2.0.so.0 #3 0xae240335 in ?? () from /usr/lib/mozilla/plugins/libflashplayer.so #4 0xae23ed8e in ?? () from /usr/lib/mozilla/plugins/libflashplayer.so #5 0xae24328e in NP_Initialize () from /usr/lib/mozilla/plugins/libflashplayer.so #6 0xb6eeb08e in WebCore::PluginPackage::load (this=0x85e8560) at /usr/local/src/Misc/webkit/WebCore/plugins/qt/PluginPackageQt.cpp:131 #7 0xb6eeaa37 in WebCore::PluginPackage::fetchInfo (this=0x85e8560) at /usr/local/src/Misc/webkit/WebCore/plugins/qt/PluginPackageQt.cpp:40 #8 0xb6d1098f in WebCore::PluginPackage::createPackage (path=..., lastModified=@0xbfffe050) at /usr/local/src/Misc/webkit/WebCore/plugins/PluginPackage.cpp:159 #9 0xb6d0381f in WebCore::PluginDatabase::refresh (this=0x85e4b98) at /usr/local/src/Misc/webkit/WebCore/plugins/PluginDatabase.cpp:118 #10 0xb6d03256 in WebCore::PluginDatabase::installedPlugins (populate=true) at /usr/local/src/Misc/webkit/WebCore/plugins/PluginDatabase.cpp:52 #11 0xb6eb40f2 in WebCore::FrameLoaderClientQt::objectContentType(WebCore::KURL const&, WebCore::String const&) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #12 0xb6aea1f3 in WebCore::HTMLPlugInImageElement::isImageType (this=0x85e4aa8) at /usr/local/src/Misc/webkit/WebCore/html/HTMLPlugInImageElement.cpp:44 #13 0xb6aac755 in WebCore::HTMLEmbedElement::parseMappedAttribute(WebCore::Attribute*) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #14 0xb69bdadd in WebCore::StyledElement::attributeChanged (this=0x85e4aa8, attr=0x85e4970, preserveDecls=false) at /usr/local/src/Misc/webkit/WebCore/dom/StyledElement.cpp:183 #15 0xb6aad19d in WebCore::HTMLEmbedElement::attributeChanged(WebCore::Attribute*, bool) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #16 0xb6964f5f in WebCore::Element::setAttributeMap (this=0x85e4aa8, list=..., scriptingPermission=WebCore::FragmentScriptingAllowed) at /usr/local/src/Misc/webkit/WebCore/dom/Element.cpp:703 #17 0xb6adf5a4 in WebCore::HTMLParser::parseToken (this=0x8202250, t=0x8204454) at /usr/local/src/Misc/webkit/WebCore/html/HTMLParser.cpp:302 #18 0xb6b039a3 in WebCore::HTMLDocumentParser::processToken() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #19 0xb6b01b1d in WebCore::HTMLDocumentParser::parseTag(WebCore::SegmentedString&, WebCore::HTMLDocumentParser::State) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #20 0xb6b0296a in WebCore::HTMLDocumentParser::advance(WebCore::HTMLDocumentParser::State&) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #21 0xb6b02efe in WebCore::HTMLDocumentParser::write(WebCore::SegmentedString const&, bool) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #22 0xb6b0445d in WebCore::HTMLDocumentParser::executeExternalScriptsIfReady() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #23 0xb6b04049 in WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #24 0xb6b04026 in WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #25 0xb692a912 in WebCore::Document::removePendingSheet() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #26 0xb6ad5621 in WebCore::HTMLLinkElement::sheetLoaded() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #27 0xb68f831f in WebCore::CSSStyleSheet::checkLoaded (this=0x8452680) at /usr/local/src/Misc/webkit/WebCore/css/CSSStyleSheet.cpp:213 #28 0xb6ad545e in WebCore::HTMLLinkElement::setCSSStyleSheet(WebCore::String const&, WebCore::KURL const&, WebCore::String const&, WebCore::CachedCSSStyleSheet const*) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #29 0xb6b8e8f6 in WebCore::CachedCSSStyleSheet::checkNotify (this=0x84b9f60) at /usr/local/src/Misc/webkit/WebCore/loader/CachedCSSStyleSheet.cpp:116 #30 0xb6b8e783 in WebCore::CachedCSSStyleSheet::data (this=0x84b9f60, data=..., allDataReceived=true) at /usr/local/src/Misc/webkit/WebCore/loader/CachedCSSStyleSheet.cpp:104 #31 0xb6bd94e7 in WebCore::Loader::Host::didFinishLoading (this=0x822ed58, loader=0x849eee0) at /usr/local/src/Misc/webkit/WebCore/loader/loader.cpp:406 #32 0xb6bf082d in WebCore::SubresourceLoader::didFinishLoading() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #33 0xb6beec48 in WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #34 0xb6e858c3 in WebCore::QNetworkReplyHandler::finish() () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #35 0xb6e87a72 in WebCore::QNetworkReplyHandler::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/build/Misc/webkit/Debug/bin/../lib/libQtWebKit.so.4 #36 0xb45b4eba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #37 0xb45c3f9b in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #38 0xb4789c47 in QNetworkReply::finished() () from /usr/lib/libQtNetwork.so.4 #39 0xb4733703 in ?? () from /usr/lib/libQtNetwork.so.4 #40 0xb471d1e0 in ?? () from /usr/lib/libQtNetwork.so.4 #41 0xb4723551 in ?? () from /usr/lib/libQtNetwork.so.4 #42 0xb4723998 in ?? () from /usr/lib/libQtNetwork.so.4 #43 0xb47345a6 in ?? () from /usr/lib/libQtNetwork.so.4 #44 0xb4734603 in ?? () from /usr/lib/libQtNetwork.so.4 #45 0xb4907f14 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #46 0xb490c0fe in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #47 0xb45aeecb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #48 0xb45b29c1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 #49 0xb45b2bad in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4 #50 0xb45d998f in ?? () from /usr/lib/libQtCore.so.4 #51 0xb3a7df72 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #52 0xb3a7e750 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #53 0xb3a7ea04 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #54 0xb45d9e7c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #55 0xb49b41b5 in ?? () from /usr/lib/libQtGui.so.4 ---Type <return> to continue, or q <return> to quit--- Created attachment 58678 [details]
bt for arora crash
I can confirm that konqueror with kwebkitpart and arora crashes after updating to flash-plugin-10.1.53.64-release.i386.
Reproduced with 4.7 and trunk (r61119). Here's a more useful backtrace of the GTK part: #0 0x0632a705 in IA__gdk_pixbuf_new_from_data (data=0x5c12964 "\377\377\377", colorspace=GDK_COLORSPACE_RGB, has_alpha=1, bits_per_sample=8, width=64, height=64, rowstride=256, destroy_fn=0, destroy_fn_data=0x5c12964) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-data.c:76 #1 0x0633200f in IA__gdk_pixbuf_from_pixdata (pixdata=0xbfffd434, copy_pixels=0, error=0x0) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixdata.c:497 #2 0x063322d3 in IA__gdk_pixbuf_new_from_inline (data_length=-1, data=0x5c1294c "GdkP", copy_pixels=0, error=0x0) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixdata.c:899 #3 0x05306335 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so #4 0x05304d8e in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so #5 0x0530928e in NP_Initialize () from /usr/lib/adobe-flashplugin/libflashplayer.so Looks like g_object_new is failing. Girish, feel like having a look? :-) (In reply to comment #3) > Reproduced with 4.7 and trunk (r61119). > Here's a more useful backtrace of the GTK part: > > #0 0x0632a705 in IA__gdk_pixbuf_new_from_data (data=0x5c12964 "\377\377\377", colorspace=GDK_COLORSPACE_RGB, has_alpha=1, bits_per_sample=8, width=64, height=64, rowstride=256, destroy_fn=0, > destroy_fn_data=0x5c12964) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-data.c:76 > #1 0x0633200f in IA__gdk_pixbuf_from_pixdata (pixdata=0xbfffd434, copy_pixels=0, error=0x0) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixdata.c:497 > #2 0x063322d3 in IA__gdk_pixbuf_new_from_inline (data_length=-1, data=0x5c1294c "GdkP", copy_pixels=0, error=0x0) at /build/buildd/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixdata.c:899 > #3 0x05306335 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so > #4 0x05304d8e in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so > #5 0x0530928e in NP_Initialize () from /usr/lib/adobe-flashplugin/libflashplayer.so > > Looks like g_object_new is failing. > Girish, feel like having a look? :-) Actually the cause of that problem is readliy apparent from debug statements printed out on the command line. One should not call any other Gtk system API without first calling g_type_init and apparently the Adobe engineers or developers have decided to assume that the hosting application for their plugin is a Gtk based one (read: chrome/firefox). Hence, there is do not need to initialize the toolkit themselves for this new release. Either they never heard the pharse "assumption is a mother of all f***ups" or they could care less. Regardless, they create needless problem for developers that use toolkits other than Gtk! But then again that is nothing new for this company. I hope the lightspark project fares better than the other attempts to create a free flash player. Anyhow I have a fix for this issue based on what KDE's nsplugin viewer does to combat the issue of uninitialized use of Gtk. I will post the patch for review soon... Created attachment 58960 [details]
Patch...
Workaround the cause of this crash by doing the same thing KDE's nsplugin viewer does...
Comment on attachment 58960 [details]
Patch...
r=me
This looks indeed like the correct fix. Older flash versions used to spit out a message on the commandline that they're calling gtk_init(), but if flash 10 doesn't do that anymore then this is a good workaround :)
The ChangeLog needs a title and the "No new tests" removed before landing. I'll take care of that.
Thanks Dawit!
Committed r61307: <http://trac.webkit.org/changeset/61307> |