Bug 484565 - plasmashell crashed in dri2_invalidate_drawable when running the Proton VPN GUI from Konsole
Summary: plasmashell crashed in dri2_invalidate_drawable when running the Proton VPN G...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 6.0.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-03-27 02:49 UTC by Matt Fagnani
Modified: 2024-03-27 23:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (150.63 KB, text/plain)
2024-03-27 02:49 UTC, Matt Fagnani
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Fagnani 2024-03-27 02:49:56 UTC
Application: plasmashell (6.0.2)

Qt Version: 6.6.2
Frameworks Version: 6.0.0
Operating System: Linux 6.8.1-300.fc40.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora Linux 40 (KDE Plasma Prerelease)"
DrKonqi: 6.0.2 [CoredumpBackend]

-- Information about the crash:
I logged into Plasma 6.0.2 on Wayland in a Fedora 40 KDE Plasma installation. I was troubleshooting a kwalletd6 crash when starting the Proton VPN GUI which I reported at https://bugs.kde.org/show_bug.cgi?id=482819 The problem involved qca 2.3.8. I built qca 2.3.8 with a patch by Albert Astals Cid https://bugs.kde.org/show_bug.cgi?id=482819#c11 I upgraded to the qca 2.3.8 build with the patch. I logged out of Plasma and logged in again. I ran the following steps described by Albert to run kwalletd6 under valgrind then run the Proton VPN GUI to reproduce the crash https://bugs.kde.org/show_bug.cgi?id=482819#c9 
"Open a terminal
Start kwalletmanager5 and press the close wallet button (force if needed)
killall kwalletd6 (run it twice to make sure it has not re-spawned itself)
valgrind kwalletd6 

Now in another terminal
kwalletmanager5 and press the open open wallet button
protonvpn-app"

The panel disappeared and reappeared automatically right after I ran protonvpn-app in Konsole. A plasmashell crash notification was shown. plasmashell crashed in dri2_invalidate_drawable in the radeonsi driver in mesa 24.0.0. The argument dPriv was null in dri2_invalidate_drawable which might've led to the crash. The crashing line ../src/gallium/frontends/dri/dri2.c:99 was drawable->lastStamp++; in the following

static void
dri2_invalidate_drawable(__DRIdrawable *dPriv)
{
   struct dri_drawable *drawable = dri_drawable(dPriv);

   drawable->lastStamp++;

This problem didn't happen before when I ran the Proton VPN GUI.

The reporter is unsure if this crash is reproducible.

-- Backtrace (Reduced):
#5  dri2_invalidate_drawable (dPriv=0x0) at ../src/gallium/frontends/dri/dri2.c:99
#6  0x00007f5e25d54127 in QtWaylandClient::QWaylandEglWindow::updateSurface (this=0x562892e60320, create=false) at /usr/include/qt6/QtCore/qpoint.h:129
#7  0x00007f5e2b63c2a9 in QWindow::resize (this=0x7f5e114230f0, newSize=...) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qwindow.cpp:1995
#8  0x00007f5e2de2ee1b in PlasmaQuick::DialogPrivate::syncToMainItemSize() () at /lib64/libPlasmaQuick.so.6
#9  0x00007f5e2adf2a24 in doActivate<false> (sender=0x7f5e10e7d8c0, signal_index=25, argv=0x7ffe29b8b1c8) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4051


Reported using DrKonqi
Comment 1 Matt Fagnani 2024-03-27 02:49:58 UTC
Created attachment 167829 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nicolas Fella 2024-03-27 23:37:09 UTC
#5  dri2_invalidate_drawable (dPriv=0x0) at ../src/gallium/frontends/dri/dri2.c:99
#6  0x00007f5e25d54127 in QtWaylandClient::QWaylandEglWindow::updateSurface (this=0x562892e60320, create=false) at /usr/include/qt6/QtCore/qpoint.h:129
#7  0x00007f5e2b63c2a9 in QWindow::resize (this=0x7f5e114230f0, newSize=...) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qwindow.cpp:1995
#8  0x00007f5e2de2ee1b in PlasmaQuick::DialogPrivate::syncToMainItemSize() () at /lib64/libPlasmaQuick.so.6
#9  0x00007f5e2adf2a24 in doActivate<false> (sender=0x7f5e10e7d8c0, signal_index=25, argv=0x7ffe29b8b1c8) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4051
#10 0x00007f5e2ade8fd7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f5e2ce91ae0, local_signal_index=local_signal_index@entry=22, argv=argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4099
#11 0x00007f5e2c9dd297 in QQuickItem::heightChanged (this=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/redhat-linux-build/src/quick/Quick_autogen/include/moc_qquickitem.cpp:1938
#12 0x00007f5e2ca056a8 in QQuickItemPrivate::heightChanged (this=0x56289233e370) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/items/qquickitem_p.h:582
#13 0x00007f5e2c9f22df in QQuickItem::geometryChange (this=0x7f5e10e7d8c0, newGeometry=<optimized out>, oldGeometry=...) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/items/qquickitem.cpp:3836
#14 0x00007f5e2c9e9378 in QQuickItem::setHeight (this=0x7f5e10e7d8c0, h=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/items/qquickitem.cpp:7400
#15 0x00007f5e2ca04bc4 in QQuickItemPrivate::setHeight (this=0x56289233e370, height=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/items/qquickitem_p.h:224
#16 QObjectCompatProperty<QQuickItemPrivate, double, &QQuickItemPrivate::_qt_property_height_offset, &QQuickItemPrivate::setHeight, &QQuickItemPrivate::heightChanged, decltype(nullptr)>::bindingWrapper(QMetaType, QUntypedPropertyData*, QtPrivate::QPropertyBindingFunction) (type=..., dataPtr=0x56289233e4a8, binding=...) at /usr/include/qt6/QtCore/6.6.2/QtCore/private/qproperty_p.h:534
#17 0x00007f5e2adf80fd in QPropertyBindingPrivate::evaluateRecursive_inline (this=0x562891cb67d0, bindingObservers=..., status=0x7f5e2d855a98) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qproperty_p.h:854
#18 QPropertyBindingPrivate::evaluateRecursive (this=this@entry=0x562891cb67d0, bindingObservers=..., status=0x7f5e2d855a98, status@entry=0x0) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qproperty.cpp:321
#19 0x00007f5e2c5d44cc in QQmlPropertyBindingJS::expressionChanged (this=0x562891cb6890) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/qml/qml/qqmlpropertybinding.cpp:156
#20 0x00007f5e2c5a8004 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/qml/qml/qqmlnotifier.cpp:70
#21 0x00007f5e2adf21ed in doActivate<false> (sender=0x562892ccd910, signal_index=28, argv=0x0) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:3931
#22 0x00007f5e0ffd5bf2 in QQuickLayoutPrivate::applySizeHints (this=this@entry=0x562892383b20) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quicklayouts/qquicklayout.cpp:756
#23 0x00007f5e0ffd5e00 in QQuickLayout::ensureLayoutItemsUpdated (this=this@entry=0x562892ccd910, options=..., options@entry=...) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quicklayouts/qquicklayout.cpp:897
#24 0x00007f5e0ffd61f5 in QQuickLayout::updatePolish (this=0x562892ccd910) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quicklayouts/qquicklayout.cpp:798
#25 0x00007f5e2caa2fa5 in QQuickWindowPrivate::polishItems (this=0x56289249d720) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/items/qquickwindow.cpp:347
#26 0x00007f5e2cc88ee1 in QSGThreadedRenderLoop::polishAndSync (this=this@entry=0x5628902c79d0, w=w@entry=0x562891cbe258, inExpose=inExpose@entry=true) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1588
#27 0x00007f5e2cc8a291 in QSGThreadedRenderLoop::handleExposure (this=0x5628902c79d0, window=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.6.2-1.fc40.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1308
#28 0x00007f5e2b641a28 in QWindow::event (this=0x7f5e114230f0, ev=0x7ffe29b8df70) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qwindow.cpp:2576
#29 0x00007f5e2de337de in PlasmaQuick::Dialog::event(QEvent*) () at /lib64/libPlasmaQuick.so.6
#30 0x00007f5e2d187f68 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7f5e114230f0, e=0x7ffe29b8df70) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#31 0x00007f5e2ad8f218 in QCoreApplication::notifyInternal2 (receiver=0x7f5e114230f0, event=0x7ffe29b8df70) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#32 0x00007f5e2ad8f43d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1553
#33 0x00007f5e2b5e50ed in QGuiApplicationPrivate::processExposeEvent (e=0x7f5e10d3da90) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:3296
#34 0x00007f5e2b6455fc in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1109
#35 0x00007f5e2bb40824 in userEventSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#36 0x00007f5e29a2668c in g_main_dispatch (context=0x7f5e10000f00) at ../glib/gmain.c:3344
#37 g_main_context_dispatch_unlocked (context=0x7f5e10000f00) at ../glib/gmain.c:4152
#38 0x00007f5e29a87788 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f5e10000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#39 0x00007f5e29a27b03 in g_main_context_iteration (context=0x7f5e10000f00, may_block=1) at ../glib/gmain.c:4282
#40 0x00007f5e2b066de3 in QEventDispatcherGlib::processEvents (this=0x56288fa62700, flags=...) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#41 0x00007f5e2ad9c053 in QEventLoop::exec (this=this@entry=0x7ffe29b8e2b0, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#42 0x00007f5e2ad97ffc in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#43 0x00007f5e2b5d37cd in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1925
#44 0x00007f5e2d187ed9 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.6.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2574
#45 0x000056288e859f65 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.0.2-1.fc40.x86_64/shell/main.cpp:214