Bug 476951

Summary: Dragging desktop widgets crashes Plasma
Product: [Plasma] plasmashell Reporter: Nate Graham <nate>
Component: Desktop ContainmentAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: bugseforuns, me, nicolas.fella, notmart
Priority: NOR Keywords: qt6
Version: master   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=478977
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nate Graham 2023-11-13 16:05:22 UTC
Plasma 6 Wayland from today's git master with Qt 6.6 from Fedora KDE 39, 200% scale, 2 screens (but it crashes with 1 screen too)


STEPS TO REPRODUCE
1. Add a widget to the desktop
2. Click-and-hold and drag it, or else enter edit mode and then drag it


OBSERVED RESULT
Plasma immediately crashes. 100% reproducible for me:

#0  __GI___pthread_sigmask (how=1, newmask=<optimized out>, oldmask=0x0) at pthread_sigmask.c:43
#1  0x00007ff14565cb7d in __GI___sigprocmask
    (how=<optimized out>, set=<optimized out>, oset=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigprocmask.c:25
#2  0x00007ff149107d38 in KCrash::setCrashHandler(void (*)(int)) (handler=handler@entry=0x0)
    at /home/nate/kde/src/kcrash/src/kcrash.cpp:407
#3  0x00007ff149108854 in KCrash::defaultCrashHandler(int) (sig=11)
    at /home/nate/kde/src/kcrash/src/kcrash.cpp:611
#4  0x00007ff14565c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  QSortFilterProxyModelPrivate::_q_sourceHeaderDataChanged(Qt::Orientation, int, int)
    (this=<optimized out>, orientation=Qt::Vertical, start=<optimized out>, end=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/itemmodels/qsortfilterproxymodel.cpp:1554
#6  0x00007ff145e02051 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffcdad0e200, r=0x6ed5580, this=0x4225240)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#7  doActivate<false>(QObject*, int, void**) (sender=0x6ed8380, signal_index=5, argv=0x7ffcdad0e200)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qobject.cpp:4021
#8  0x00007ff145df8637 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7ff146244e60, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffcdad0e200)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qobject.cpp:4081
#9  0x00007ff145fc8783 in QAbstractItemModel::headerDataChanged(Qt::Orientation, int, int)
    (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:1328
#10 0x00007ff145df3657 in QObject::event(QEvent*) (this=0x6ed8380, e=0x4233100)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qobject.cpp:1437
#11 0x00007ff1475c2b38 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x6ed8380, e=0x4233100)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/widgets/kernel/qapplication.cpp:3290
#12 0x00007ff145da0be8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x6ed8380, event=0x4233100)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1118
#13 0x00007ff145da0ded in QCoreApplication::sendEvent(QObject*, QEvent*)
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1536
#14 0x00007ff145da4ae5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
    (receiver=0x0, event_type=0, data=0x136ed00)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1898
#15 0x00007ff145da4e5d in QCoreApplication::sendPostedEvents(QObject*, int)
    (receiver=<optimized out>, event_type=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1757
#16 0x00007ff1460410af in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x13def90)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#17 0x00007ff14515fe5c in g_main_dispatch (context=0x7ff12c000ef0) at ../glib/gmain.c:3476
#18 g_main_context_dispatch_unlocked (context=0x7ff12c000ef0) at ../glib/gmain.c:4284
#19 0x00007ff1451badd8 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7ff12c000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#20 0x00007ff14515dad3 in g_main_context_iteration (context=0x7ff12c000ef0, may_block=1)
    at ../glib/gmain.c:4414
#21 0x00007ff14604095f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=0x1374c10, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#22 0x00007ff145dad9fb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7ffcdad0e6b0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/global/qflags.h:34
#23 0x00007ff145da97fd in QCoreApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/corelib/global/qflags.h:74
#24 0x00007ff1465f8b2d in QGuiApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/gui/kernel/qguiapplication.cpp:1921
#25 0x00007ff1475c2aa9 in QApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.6.0-2.fc39.x86_64/src/widgets/kernel/qapplication.cpp:2569
#26 0x0000000000425f4a in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /home/nate/kde/src/plasma-workspace/shell/main.cpp:230
Comment 1 Nicolas Fella 2024-01-08 23:35:12 UTC
Is this still happening?

I can't reproduce
Comment 2 Nate Graham 2024-01-09 16:28:17 UTC
Yes, it's still happening to me with current git master and Qt 6.6. Maybe it got fixed in 6.7?
Comment 3 Nate Graham 2024-01-11 16:22:13 UTC
*** Bug 479641 has been marked as a duplicate of this bug. ***
Comment 4 Marco Martin 2024-01-16 10:45:58 UTC
the widget must be just added or happens also if the widget was already there at plasma startup?
Comment 5 Marco Martin 2024-01-16 10:47:43 UTC
btw can't reproduce it
Comment 6 Marco Martin 2024-01-16 11:01:45 UTC
what would be interesting is to discovering *what* model in what plasmoid is crashing... one thing that could be tried is to remove plasmodis until it doesn't crash anymore

(would start by removing the systray and then if doesn't crash, putting systray back and remove applets of the systray one by one)
Comment 7 Nate Graham 2024-01-16 15:10:53 UTC
These steps reproduce it 100% for me:

0. Reboot the computer
1. Right-click on desktop > Add Widgets
2. Search for "Analog"
3. Click on Analog Clock widget to add it to the center of the desktop (don't drag it to the desktop!)
4. Immediately click-and-hold on it and try to move it to another location
Comment 8 Nate Graham 2024-01-16 17:51:13 UTC
Ah, this was in fact just Bug 479418, which was fixed today.

*** This bug has been marked as a duplicate of bug 479418 ***