Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.3.2
-
None
-
Qt 5.3.2, Arch Linux, Intel graphics
Description
I'm getting a crash whenever an item with a QtGraphicalEffect is destroyed via menu item. When the menu window is destroyed it triggers an attempt to update the destroyed graphics effect (-> segfault).
This reliably crashes for me with Qt 5.3.2/Arch Linux, and I have reports of it crashing on 5.3.1/linux. Some have also reported that it does not crash on 5.3.1/linux. It's not clear what the differentiating factor is.
import QtQuick 2.3 import QtGraphicalEffects 1.0 import QtQuick.Window 2.2 import QtQuick.Controls 1.2 ApplicationWindow { visible: true width: loader.width height: loader.height menuBar: MenuBar { Menu { title: "OpenMe" MenuItem { text: "Crash" onTriggered: { loader.sourceComponent = undefined } } } } Component { id: crasher RadialGradient { width: 100; height: 100 gradient: Gradient { GradientStop { position: 0.0; color: "red" } GradientStop { position: 1.0; color: "green" } } } } Loader { id: loader sourceComponent: crasher } }
ASSERT: "context" in file opengl/qopenglfunctions.cpp, line 201 Program received signal SIGABRT, Aborted. 0x00007ffff5b7fa97 in raise () from /usr/lib/libc.so.6 (gdb) bt #0 0x00007ffff5b7fa97 in raise () from /usr/lib/libc.so.6 #1 0x00007ffff5b80e6a in abort () from /usr/lib/libc.so.6 #2 0x00007ffff6594a88 in qt_message_fatal (context=..., message=...) at global/qlogging.cpp:1364 #3 QMessageLogger::fatal (this=this@entry=0x7fffffffd530, msg=msg@entry=0x7ffff6804160 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:669 #4 0x00007ffff658ff64 in qt_assert (assertion=assertion@entry=0x7ffff6db3370 "context", file=file@entry=0x7ffff6db3354 "opengl/qopenglfunctions.cpp", line=line@entry=201) at global/qglobal.cpp:2127 #5 0x00007ffff6d081f9 in qt_gl_functions (context=0x0) at opengl/qopenglfunctions.cpp:201 #6 0x00007ffff6d14d6d in (anonymous namespace)::Resolver<QOpenGLFunctionsPrivate, void (*)(int, unsigned int const*), 3, void>::operator()<int, unsigned int const*> (this=this@entry=0x7fffffffd630, p1=p1@entry=1, p2=p2@entry=0x97d998) at opengl/qopenglfunctions.cpp:2296 #7 0x00007ffff6d150c2 in qopenglfResolveDeleteRenderbuffers (n=1, renderbuffers=0x97d998) at opengl/qopenglfunctions.cpp:2754 #8 0x00007ffff7b356b8 in glDeleteRenderbuffers (renderbuffers=0x97d998, n=1, this=0x97d978) at /home/username/managed/ABS/extra/qt5/src/qt-everywhere-opensource-src-5.3.2/qtbase/include/QtGui/5.3.2/QtGui/private/../../../../../src/gui/opengl/qopenglfunctions.h:1325 #9 QSGDefaultDepthStencilBuffer::free (this=this@entry=0x97d970) at scenegraph/util/qsgdepthstencilbuffer.cpp:153 #10 0x00007ffff7b35dc3 in QSGDefaultDepthStencilBuffer::~QSGDefaultDepthStencilBuffer (this=0x97d970, __in_chrg=<optimized out>) at scenegraph/util/qsgdepthstencilbuffer.cpp:147 #11 0x00007ffff7b35df9 in QSGDefaultDepthStencilBuffer::~QSGDefaultDepthStencilBuffer (this=0x97d970, __in_chrg=<optimized out>) at scenegraph/util/qsgdepthstencilbuffer.cpp:148 #12 0x00007ffff7c76b86 in destroy (this=0x1e0a7e0) at /home/username/managed/ABS/extra/qt5/src/qt-everywhere-opensource-src-5.3.2/qtbase/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:158 #13 deref (d=0x1e0a7e0) at /home/username/managed/ABS/extra/qt5/src/qt-everywhere-opensource-src-5.3.2/qtbase/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:449 #14 deref (this=<optimized out>) at /home/username/managed/ABS/extra/qt5/src/qt-everywhere-opensource-src-5.3.2/qtbase/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:444 #15 ~QSharedPointer (this=0xa808a8, __in_chrg=<optimized out>) at /home/username/managed/ABS/extra/qt5/src/qt-everywhere-opensource-src-5.3.2/qtbase/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:312 #16 QQuickShaderEffectTexture::~QQuickShaderEffectTexture (this=0xa80840, __in_chrg=<optimized out>) at items/qquickshadereffectsource.cpp:159 #17 0x00007ffff7c76bc9 in QQuickShaderEffectTexture::~QQuickShaderEffectTexture (this=0xa80840, __in_chrg=<optimized out>) at items/qquickshadereffectsource.cpp:162 #18 0x00007ffff67892d8 in QObject::event (this=0xa80840, e=<optimized out>) at kernel/qobject.cpp:1232 #19 0x00007ffff6ff08c4 in QApplicationPrivate::notify_helper (this=0x4183b0, receiver=0xa80840, e=0x226ed90) at kernel/qapplication.cpp:3499 #20 0x00007ffff6ff6020 in QApplication::notify (this=0x7fffffffe4a0, receiver=0xa80840, e=0x226ed90) at kernel/qapplication.cpp:3282 #21 0x00007ffff675a6cd in QCoreApplication::notifyInternal (this=0x7fffffffe4a0, receiver=0xa80840, event=event@entry=0x226ed90) at kernel/qcoreapplication.cpp:935 #22 0x00007ffff675d98d in sendEvent (event=0x226ed90, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237 #23 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=52, data=0x418510) at kernel/qcoreapplication.cpp:1539 #24 0x00007ffff675de78 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=52) at kernel/qcoreapplication.cpp:1397 #25 0x00007ffff7b88ad1 in QQuickWindow::~QQuickWindow (this=0x1db2cb0, __in_chrg=<optimized out>) at items/qquickwindow.cpp:1097 #26 0x00007fffe8174cb1 in ~QQuickPopupWindow (this=0x1db2cb0, __in_chrg=<optimized out>) at .moc/../qquickpopupwindow_p.h:51 #27 ~QQuickMenuPopupWindow (this=0x1db2cb0, __in_chrg=<optimized out>) at .moc/../qquickmenupopupwindow_p.h:49 #28 QQuickMenuPopupWindow::~QQuickMenuPopupWindow (this=0x1db2cb0, __in_chrg=<optimized out>) at .moc/../qquickmenupopupwindow_p.h:49 #29 0x00007ffff67892d8 in QObject::event (this=this@entry=0x1db2cb0, e=<optimized out>) at kernel/qobject.cpp:1232 #30 0x00007ffff6a9c6b8 in QWindow::event (this=this@entry=0x1db2cb0, ev=ev@entry=0x1de1120) at kernel/qwindow.cpp:2000 #31 0x00007ffff7b8f3d3 in QQuickWindow::event (this=0x1db2cb0, e=0x1de1120) at items/qquickwindow.cpp:1349 #32 0x00007ffff6ff08c4 in QApplicationPrivate::notify_helper (this=0x4183b0, receiver=0x1db2cb0, e=0x1de1120) at kernel/qapplication.cpp:3499 #33 0x00007ffff6ff6020 in QApplication::notify (this=0x7fffffffe4a0, receiver=0x1db2cb0, e=0x1de1120) at kernel/qapplication.cpp:3282 #34 0x00007ffff675a6cd in QCoreApplication::notifyInternal (this=0x7fffffffe4a0, receiver=0x1db2cb0, event=event@entry=0x1de1120) at kernel/qcoreapplication.cpp:935 #35 0x00007ffff675d98d in sendEvent (event=0x1de1120, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237 #36 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x418510) at kernel/qcoreapplication.cpp:1539 #37 0x00007ffff675de78 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1397 #38 0x00007ffff67b1013 in postEventSourceDispatch (s=0x447060) at kernel/qeventdispatcher_glib.cpp:279 #39 0x00007ffff5180a0d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #40 0x00007ffff5180cf8 in ?? () from /usr/lib/libglib-2.0.so.0 #41 0x00007ffff5180dac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #42 0x00007ffff67b1087 in QEventDispatcherGlib::processEvents (this=0x44b630, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #43 0x00007ffff6758b12 in QEventLoop::exec (this=this@entry=0x7fffffffe2d0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #44 0x00007ffff67603dc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188 #45 0x000000000040460a in main (argc=2, argv=0xd1d) at main.cpp:548