Crash in WebviewThumbnailer::~WebviewThumbnailer() with Qt 5.2

Bug #1294219 reported by Olivier Tilloy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
webbrowser-app
Fix Released
Critical
Olivier Tilloy
webbrowser-app (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I’m seeing this crash fairly regularly (although it’s not 100% reliably reproducible) since the update to Qt 5.2 (it was not occurring before). Running on x86-64 desktop.
Steps to reproduce:
 - launch the browser app
 - open the activity view, click on the new tab button
 - type in any URL and validate, wait for the new page to finish loading
 - open the activity view again
 - long press on any of the two open tabs to switch to tabs closing mode
 - click the last open tab: the crash happens there

Here’s the backtrace I’m getting when run in gdb:

#0 QOpenGLContext::shareGroup (this=this@entry=0x0) at kernel/qopenglcontext.cpp:896
#1 0x00007ffff73eda28 in value<QOpenGLFunctionsPrivateEx> (context=0x0,
    this=0x7ffff7733a80 <(anonymous namespace)::Q_QGS_qt_gl_functions_resource::innerFunction()::holder>)
    at ../../include/QtGui/5.2.1/QtGui/private/../../../../../src/gui/kernel/qopenglcontext_p.h:173
#2 qt_gl_functions (context=context@entry=0x0) at opengl/qopenglfunctions.cpp:197
#3 0x00007ffff73f854f in (anonymous namespace)::Resolver<QOpenGLFunctionsPrivate, void (*)(int, unsigned int const*), 3, void>::operator()<int, unsigned int const*> (this=this@entry=0x7fffffffd300, p1=p1@entry=1,
    p2=p2@entry=0x7fff647b7e20) at opengl/qopenglfunctions.cpp:1764
#4 0x00007ffff73f89f2 in qopenglfResolveDeleteBuffers (n=1, buffers=0x7fff647b7e20)
    at opengl/qopenglfunctions.cpp:1959
#5 0x00007ffff6c6d856 in glDeleteBuffers (buffers=0x7fff647b7e20, n=1, this=<optimized out>)
    at /usr/include/qt5/QtGui/qopenglfunctions.h:643
#6 qsg_wipeBuffer (funcs=<optimized out>, buffer=0x7fff647b7e20) at scenegraph/coreapi/qsgbatchrenderer.cpp:822
#7 QSGBatchRenderer::qsg_wipeBatch (batch=0x7fff647b7e00, funcs=<optimized out>)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:828
#8 0x00007ffff6c71f33 in QSGBatchRenderer::Renderer::~Renderer (this=0x7fff646aaa10, __in_chrg=<optimized out>)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:835
#9 0x00007ffff6c72279 in QSGBatchRenderer::Renderer::~Renderer (this=0x7fff646aaa10, __in_chrg=<optimized out>)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:850
#10 0x000000000043d86e in WebviewThumbnailer::~WebviewThumbnailer() ()
#11 0x000000000043b657 in QQmlPrivate::QQmlElement<WebviewThumbnailer>::~QQmlElement() ()
#12 0x000000000043b6b0 in QQmlPrivate::QQmlElement<WebviewThumbnailer>::~QQmlElement() ()
#13 0x00007ffff79c3c9c in QObjectPrivate::deleteChildren (this=this@entry=0x24f0db0) at kernel/qobject.cpp:1841
#14 0x00007ffff79ca632 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:934
#15 0x00007fffd044b6d6 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/QtWebKit/experimental/libqmlwebkitexperimentalplugin.so
#16 0x00007ffff79c4278 in QObject::event (this=this@entry=0x256b120, e=e@entry=0x28703f0) at kernel/qobject.cpp:1138
#17 0x00007ffff6cc0ae3 in QQuickItem::event (this=0x256b120, ev=0x28703f0) at items/qquickitem.cpp:6984
#18 0x00007ffff395bc2c in QApplicationPrivate::notify_helper (this=this@entry=0x665f70,
    receiver=receiver@entry=0x256b120, e=e@entry=0x28703f0) at kernel/qapplication.cpp:3486
#19 0x00007ffff3960df6 in QApplication::notify (this=0x7fffffffdc40, receiver=0x256b120, e=0x28703f0)
    at kernel/qapplication.cpp:3236
#20 0x00007ffff799bc2d in QCoreApplication::notifyInternal (this=0x7fffffffdc40, receiver=0x256b120,
    event=event@entry=0x28703f0) at kernel/qcoreapplication.cpp:881
#21 0x00007ffff799de07 in sendEvent (event=0x28703f0, receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:232
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0,
    data=0x6660d0) at kernel/qcoreapplication.cpp:1485
#23 0x00007ffff799e433 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0,
    event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1343
#24 0x00007ffff79e8cd3 in postEventSourceDispatch (s=0x6ab430) at kernel/qeventdispatcher_glib.cpp:279
#25 0x00007ffff1b81e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff1b82048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff1b820ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff79e898c in QEventDispatcherGlib::processEvents (this=0x67f830, flags=...)
    at kernel/qeventdispatcher_glib.cpp:426
#29 0x00007ffff799a96b in QEventLoop::exec (this=this@entry=0x7fffffffdba0, flags=..., flags@entry=...)
    at kernel/qeventloop.cpp:212
#30 0x00007ffff79a10e1 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1134
#31 0x0000000000442811 in BrowserApplication::run() ()
#32 0x0000000000435570 in main ()

Related branches

Olivier Tilloy (osomon)
Changed in webbrowser-app:
assignee: nobody → Olivier Tilloy (osomon)
importance: Undecided → Critical
Revision history for this message
Olivier Tilloy (osomon) wrote :

I can reproduce with revision 460 of lp:webbrowser-app, which means that this regression is not a consequence of one of the recent changes in the app itself, but rather a consequence of the switch to Qt 5.2.

Note that this doesn’t necessarily mean that the bug is in Qt itself either: the thumbnailer uses private headers, so it may very well be that the code is incorrectly using Qt (as far as I can tell there has been changes in this code between Qt 5.0 and Qt 5.2).

Changed in webbrowser-app:
assignee: Olivier Tilloy (osomon) → nobody
status: New → Triaged
assignee: nobody → Olivier Tilloy (osomon)
Olivier Tilloy (osomon)
Changed in webbrowser-app:
status: Triaged → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package webbrowser-app - 0.23+14.04.20140319-0ubuntu1

---------------
webbrowser-app (0.23+14.04.20140319-0ubuntu1) trusty; urgency=low

  [ Olivier Tilloy ]
  * Use the renderer only once when rendering a thumbnail. This seems to
    fix the crash that was happening at destruction time. (LP: #1294219)
 -- Ubuntu daily release <email address hidden> Wed, 19 Mar 2014 14:58:21 +0000

Changed in webbrowser-app (Ubuntu):
status: New → Fix Released
Olivier Tilloy (osomon)
Changed in webbrowser-app:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.