Bug 466940

Summary: Plasmashell crashes in PlasmaQuick::DialogPrivate::syncToMainItemSize()
Product: [Frameworks and Libraries] libplasma Reporter: Nicolas Fella <nicolas.fella>
Component: libplasmaAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: bugseforuns, dex.mbox, jlp, julien.dlq, kde, kdebugs, madLyfe, marianpoltak, martin-kokos, matt.fagnani, mccilloni, nate, notmart, postix, spacimek, szaszm01, the.rhorn
Priority: VHI Keywords: qt6
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: Qt 6.7.3
Sentry Crash Report:

Description Nicolas Fella 2023-03-06 13:36:16 UTC
I *think* it was after receiving a notification

Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  dri_drawable (driDrawPriv=0x0) at ../src/gallium/frontends/dri/dri_drawable.h:89
#6  dri2_invalidate_drawable (dPriv=0x0) at ../src/gallium/frontends/dri/dri2.c:82
#7  0x00007f63f33dfdf8 in QtWaylandClient::QWaylandEglWindow::updateSurface(bool) () at /lib64/libQt6WaylandEglClientHwIntegration.so.6
#8  0x00007f640524d384 in QWindow::resize(QSize const&) () at /lib64/libQt6Gui.so.6
#9  0x00007f640820fa2d in PlasmaQuick::DialogPrivate::syncToMainItemSize() (this=0x53808a0) at /home/nico/kde6/src/plasma-framework/src/plasmaquick/dialog.cpp:711
#10 0x00007f64049c7f8f in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#11 0x00007f640762e81c in QQuickItem::geometryChange(QRectF const&, QRectF const&) () at /lib64/libQt6Quick.so.6
#12 0x00007f64076255f6 in QQuickItem::setHeight(double) () at /lib64/libQt6Quick.so.6
#13 0x00007f640763f296 in QObjectCompatProperty<QQuickItemPrivate, double, &QQuickItemPrivate::_qt_property_height_offset, &QQuickItemPrivate::setHeight, &QQuickItemPrivate::heightChanged, decltype(nullptr)>::bindingWrapper(QMetaType, QUntypedPropertyData*, QtPrivate::QPropertyBindingFunction) () at /lib64/libQt6Quick.so.6
#14 0x00007f64049cd3ed in QPropertyBindingPrivate::evaluateRecursive(QVarLengthArray<QBindingObserverPtr, 256ll>&, QBindingStatus*) () at /lib64/libQt6Core.so.6
#15 0x00007f6406f9b5e3 in QQmlPropertyBindingJS::expressionChanged() () at /lib64/libQt6Qml.so.6
#16 0x00007f6406f717b6 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /lib64/libQt6Qml.so.6
#17 0x00007f64049c7a90 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#18 0x00007f63c5fe11ce in QQuickLayoutPrivate::applySizeHints() const () at /lib64/libQt6QuickLayouts.so.6
#19 0x00007f63c5fe13b8 in QQuickLayout::ensureLayoutItemsUpdated(QFlags<QQuickLayout::EnsureLayoutItemsUpdatedOption>) const () at /lib64/libQt6QuickLayouts.so.6
#20 0x00007f63c5fe1553 in QQuickLayout::updatePolish() () at /lib64/libQt6QuickLayouts.so.6
#21 0x00007f64076db268 in QQuickWindowPrivate::polishItems() () at /lib64/libQt6Quick.so.6
#22 0x00007f64078b0953 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) () at /lib64/libQt6Quick.so.6
#23 0x00007f64078b1c30 in QSGThreadedRenderLoop::handleExposure(QQuickWindow*) () at /lib64/libQt6Quick.so.6
#24 0x00007f6405252498 in QWindow::event(QEvent*) () at /lib64/libQt6Gui.so.6
#25 0x00007f6408211adf in PlasmaQuick::Dialog::event(QEvent*) (this=0x6909a30, event=0x7ffc0f6ebf90) at /home/nico/kde6/src/plasma-framework/src/plasmaquick/dialog.cpp:1450
#26 0x00007f6405fbaa65 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#27 0x00007f6404968068 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#28 0x00007f640520025f in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () at /lib64/libQt6Gui.so.6
#29 0x00007f64052551cc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Gui.so.6
#30 0x00007f6405708824 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Gui.so.6
#31 0x00007f6403cbbc7f in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#32 0x00007f6403d12118 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#33 0x00007f6403cb8f00 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#34 0x00007f6404c23220 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#35 0x00007f640497465b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#36 0x00007f6404970528 in QCoreApplication::exec() () at /lib64/libQt6Core.so.6
#37 0x0000000000424f79 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde6/src/plasma-workspace/shell/main.cpp:235
[Inferior 1 (process 9770) detached]
Comment 1 Nicolas Fella 2023-03-06 13:43:44 UTC
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f64042afec3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f640425fa76 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f6407b678fd in KCrash::defaultCrashHandler(int) (sig=11) at /home/nico/kde6/src/kcrash/src/kcrash.cpp:612
#4  0x00007f640425fb20 in <signal handler called> () at /lib64/libc.so.6
#5  dri_drawable (driDrawPriv=0x0) at ../src/gallium/frontends/dri/dri_drawable.h:89
#6  dri2_invalidate_drawable (dPriv=0x0) at ../src/gallium/frontends/dri/dri2.c:82
#7  0x00007f63f33dfdf8 in QtWaylandClient::QWaylandEglWindow::updateSurface(bool) (this=0x6477f40, create=<optimized out>) at /usr/include/qt6/QtCore/qpoint.h:124
#8  0x00007f640524d384 in QWindow::resize(QSize const&) (this=0x6909a30, newSize=...) at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/kernel/qwindow.cpp:1914
#9  0x00007f640820fa2d in PlasmaQuick::DialogPrivate::syncToMainItemSize() (this=0x53808a0) at /home/nico/kde6/src/plasma-framework/src/plasmaquick/dialog.cpp:711
#10 0x00007f64049c7f8f in doActivate<false>(QObject*, int, void**) (sender=0x6a5e780, signal_index=25, argv=0x7ffc0f6e9388) at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qobject.cpp:3991
#11 0x00007f64049c0cc7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f6407ac89a0, local_signal_index=local_signal_index@entry=22, argv=argv@entry=0x0)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qobject.cpp:4039
#12 0x00007f6407619377 in QQuickItem::heightChanged() (this=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/redhat-linux-build/src/quick/Quick_autogen/include/moc_qquickitem.cpp:1614
#13 0x00007f640763fdba in QQuickItemPrivate::heightChanged() (this=0x64c2970)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/redhat-linux-build/include/QtQuick/6.4.2/QtQuick/private/../../../../../../src/quick/items/qquickitem_p.h:579
#14 0x00007f640762e81c in QQuickItem::geometryChange(QRectF const&, QRectF const&) (this=0x6a5e780, newGeometry=<optimized out>, oldGeometry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quick/items/qquickitem.cpp:3788
#15 0x00007f64076255f6 in QQuickItem::setHeight(double) (this=0x6a5e780, h=<optimized out>) at /usr/include/qt6/QtCore/qrect.h:610
#16 0x00007f640763f296 in QQuickItemPrivate::setHeight(double) (height=<optimized out>, this=0x64c2970)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/redhat-linux-build/include/QtQuick/6.4.2/QtQuick/private/../../../../../../src/quick/items/qquickitem_p.h:218
#17 QObjectCompatProperty<QQuickItemPrivate, double, &QQuickItemPrivate::_qt_property_height_offset, &QQuickItemPrivate::setHeight, &QQuickItemPrivate::heightChanged, decltype(nullptr)>::bindingWrapper(QMetaType, QUntypedPropertyData*, QtPrivate::QPropertyBindingFunction) (type=..., dataPtr=0x64c2ac8, binding=...) at /usr/include/qt6/QtCore/6.4.2/QtCore/private/qproperty_p.h:490
#18 0x00007f64049cd3ed in QPropertyBindingPrivate::evaluateRecursive_inline(QVarLengthArray<QBindingObserverPtr, 256ll>&, QBindingStatus*) (status=0x7f6400b7b558, bindingObservers=..., this=0x6b9b8f0)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qproperty_p.h:810
#19 QPropertyBindingPrivate::evaluateRecursive(QVarLengthArray<QBindingObserverPtr, 256ll>&, QBindingStatus*) (this=0x6b9b8f0, bindingObservers=..., status=0x7f6400b7b558)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qproperty.cpp:283
#20 0x00007f6406f9b5e3 in QQmlPropertyBindingJS::expressionChanged() (this=0x6b9b9b0) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/qml/qml/qqmlpropertybinding.cpp:156
#21 0x00007f6406f717b6 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/qml/qml/qqmlnotifier.cpp:70
#22 0x00007f64049c7a90 in doActivate<false>(QObject*, int, void**) (sender=0x3dfd350, signal_index=28, argv=0x0) at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qobject.cpp:3871
#23 0x00007f63c5fe11ce in QQuickLayoutPrivate::applySizeHints() const (this=this@entry=0x3ec0ab0) at /usr/include/qt6/QtCore/qsize.h:317
#24 0x00007f63c5fe13b8 in QQuickLayout::ensureLayoutItemsUpdated(QFlags<QQuickLayout::EnsureLayoutItemsUpdatedOption>) const (this=this@entry=0x3dfd350, options=..., options@entry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quicklayouts/qquicklayout.cpp:816
#25 0x00007f63c5fe1553 in QQuickLayout::updatePolish() (this=0x3dfd350) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quicklayouts/qquicklayout.cpp:718
#26 0x00007f64076db268 in QQuickWindowPrivate::polishItems() (this=0x68b2680) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quick/items/qquickwindow.cpp:344
#27 0x00007f64078b0953 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) (this=this@entry=0x2256ed0, w=w@entry=0x5ffc1f0, inExpose=inExpose@entry=true)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1557
#28 0x00007f64078b1c30 in QSGThreadedRenderLoop::handleExposure(QQuickWindow*) (this=0x2256ed0, window=<optimized out>)
    at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1288
#29 0x00007f6405252498 in QWindow::event(QEvent*) (this=0x6909a30, ev=0x7ffc0f6ebf90) at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/kernel/qwindow.cpp:2502
#30 0x00007f64076dd3de in QQuickWindow::event(QEvent*) (this=this@entry=0x6909a30, event=event@entry=0x7ffc0f6ebf90) at /usr/src/debug/qt6-qtdeclarative-6.4.2-1.fc37.x86_64/src/quick/items/qquickwindow.cpp:1564
#31 0x00007f6408211adf in PlasmaQuick::Dialog::event(QEvent*) (this=0x6909a30, event=0x7ffc0f6ebf90) at /home/nico/kde6/src/plasma-framework/src/plasmaquick/dialog.cpp:1450
#32 0x00007f6405fbaa65 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x6909a30, e=0x7ffc0f6ebf90)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/widgets/kernel/qapplication.cpp:3315


#33 0x00007f6404968068 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x6909a30, event=0x7ffc0f6ebf90)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qcoreapplication.cpp:1026
#34 0x00007f640520025f in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) (e=0x4fe9210)
--Type <RET> for more, q to quit, c to continue without paging--
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/kernel/qguiapplication.cpp:3187
#35 0x00007f64052551cc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1103
#36 0x00007f6405708824 in userEventSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#37 0x00007f6403cbbc7f in g_main_dispatch (context=0x1a95cb0) at ../glib/gmain.c:3454
#38 g_main_context_dispatch (context=0x1a95cb0) at ../glib/gmain.c:4172
#39 0x00007f6403d12118 in g_main_context_iterate.constprop.0 (context=0x1a95cb0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4248
#40 0x00007f6403cb8f00 in g_main_context_iteration (context=0x1a95cb0, may_block=1) at ../glib/gmain.c:4313
#41 0x00007f6404c23220 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1a5d010, flags=...)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#42 0x00007f640497465b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc0f6ec2b0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/global/qflags.h:34
#43 0x00007f6404970528 in QCoreApplication::exec() () at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/corelib/global/qflags.h:74
#44 0x00007f64051eefc0 in QGuiApplication::exec() () at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/gui/kernel/qguiapplication.cpp:1859
#45 0x00007f6405fba9d9 in QApplication::exec() () at /usr/src/debug/qt6-qtbase-6.4.2-4.fc37.x86_64/src/widgets/kernel/qapplication.cpp:2595
#46 0x0000000000424f79 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde6/src/plasma-workspace/shell/main.cpp:235
Comment 2 Nate Graham 2023-04-27 22:31:03 UTC
Oh maybe this was just fixed today with https://invent.kde.org/frameworks/plasma-framework/-/commit/8329121b1f3f35b46703ea0bdbe1574cc73469ec?
Comment 3 Bug Janitor Service 2023-05-12 03:46:09 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Bug Janitor Service 2023-05-27 03:45:43 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!
Comment 5 Nate Graham 2024-06-17 18:37:58 UTC
*** Bug 488580 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2024-06-17 18:38:25 UTC
Got a duplicate from someone using Plasma 6.0.5; re-opening.
Comment 7 Nate Graham 2024-06-19 15:06:10 UTC
FWIW I'm seeing this crash (exact same backtrace) multiple times a day now.
Comment 8 David Edmundson 2024-06-21 09:58:15 UTC
>I *think* it was after receiving a notification

Almost certainly, it's one of the few dialog users remaining.
I strongly suspect we have an invalid size being sent, we know mesa doesn't handle it well and it would fit the symptoms.
Comment 9 David Edmundson 2024-06-21 09:58:58 UTC
If you can reproduce, can you try to print the size to confirm the theory, then I'll add guards in both plasma and Qt
Comment 10 David Edmundson 2024-07-01 21:51:28 UTC
*** Bug 489566 has been marked as a duplicate of this bug. ***
Comment 11 Akseli Lahtinen 2024-07-02 08:10:57 UTC
*** Bug 489557 has been marked as a duplicate of this bug. ***
Comment 12 Akseli Lahtinen 2024-07-02 08:11:53 UTC
*** Bug 486403 has been marked as a duplicate of this bug. ***
Comment 13 Akseli Lahtinen 2024-07-02 08:12:14 UTC
*** Bug 484565 has been marked as a duplicate of this bug. ***
Comment 14 cwo 2024-07-10 07:55:44 UTC
*** Bug 489993 has been marked as a duplicate of this bug. ***
Comment 15 cwo 2024-07-10 07:58:28 UTC
*** Bug 489978 has been marked as a duplicate of this bug. ***
Comment 16 cwo 2024-07-15 21:55:47 UTC
*** Bug 490313 has been marked as a duplicate of this bug. ***
Comment 17 David Edmundson 2024-07-19 13:24:21 UTC
This will hopefully get fixed by https://codereview.qt-project.org/c/qt/qtwayland/+/575074
Comment 18 duha.bugs 2024-08-07 15:33:48 UTC
*** Bug 491397 has been marked as a duplicate of this bug. ***
Comment 19 Nate Graham 2024-08-14 01:47:54 UTC
*** Bug 491692 has been marked as a duplicate of this bug. ***
Comment 20 Nate Graham 2024-08-20 17:07:01 UTC
*** Bug 491729 has been marked as a duplicate of this bug. ***
Comment 21 cwo 2024-09-12 20:39:45 UTC
*** Bug 492883 has been marked as a duplicate of this bug. ***
Comment 22 Nate Graham 2024-09-19 19:13:10 UTC
*** Bug 493379 has been marked as a duplicate of this bug. ***
Comment 23 Nicolas Fella 2024-10-07 12:36:23 UTC
So far no reports for this with Qt 6.7.3, so it seems fixed indeed