Bug 421499

Summary: Plasmashell crash when moving desktop icons
Product: [Plasma] plasmashell Reporter: DGLS <dgls575>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED DUPLICATE    
Severity: crash CC: k2squared, plasma-bugs
Priority: NOR Keywords: drkonqi
Version: 5.18.5   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description DGLS 2020-05-14 05:41:51 UTC
Application: plasmashell (5.18.5)

Qt Version: 5.14.2
Frameworks Version: 5.70.0
Operating System: Linux 5.3.0-51-generic x86_64
Windowing system: X11
Distribution: KDE neon User Edition 5.18

-- Information about the crash:
- What I was doing when the application crashed:
Rearanging icons on the desktop

- Unusual behavior I noticed:
Before the crash the icon that was being dragged didn't show the icon's graphic next to the cursor.

- Custom settings of the application:
Plasmashell running on a 4K display, with the UI scalled to 150%

The crash can be reproduced sometimes.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f3eb4c9f840 (LWP 3537))]

Thread 8 (Thread 0x7f3e551f1700 (LWP 3553)):
#0  0x00007f3eade909f3 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f3eae8d51db in QWaitConditionPrivate::wait (deadline=..., this=0x55847821e2b0) at thread/qwaitcondition_unix.cpp:146
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x7f3e9800a160, deadline=...) at thread/qwaitcondition_unix.cpp:225
#3  0x00007f3eae8d5359 in QWaitCondition::wait (this=this@entry=0x7f3e9800a168, mutex=mutex@entry=0x7f3e9800a160, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#4  0x00007f3eb29d8233 in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x7f3e9800a158) at scenegraph/qsgthreadedrenderloop.cpp:255
#5  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x7f3e9800a0c0) at scenegraph/qsgthreadedrenderloop.cpp:905
#6  0x00007f3eb29d8691 in QSGRenderThread::run (this=0x7f3e9800a0c0) at scenegraph/qsgthreadedrenderloop.cpp:1000
#7  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x7f3e9800a0c0) at thread/qthread_unix.cpp:342
#8  0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 7 (Thread 0x7f3e56ea9700 (LWP 3550)):
#0  0x00007f3eae1b6bf9 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f3ea82535c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3ea82536dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3eaeb1d7cb in QEventDispatcherGlib::processEvents (this=0x7f3e50000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f3eaeabcd2a in QEventLoop::exec (this=this@entry=0x7f3e56ea8d20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f3eae8cd757 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#6  0x00007f3e59808467 in KCupsConnection::run() () from /usr/lib/x86_64-linux-gnu/libkcupslib.so
#7  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x5584780d1bc0) at thread/qthread_unix.cpp:342
#8  0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 6 (Thread 0x7f3e7d185700 (LWP 3544)):
#0  0x00007f3eade909f3 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f3eae8d51db in QWaitConditionPrivate::wait (deadline=..., this=0x558475669360) at thread/qwaitcondition_unix.cpp:146
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x5584756692b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#3  0x00007f3eae8d5359 in QWaitCondition::wait (this=this@entry=0x5584756692b8, mutex=mutex@entry=0x5584756692b0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#4  0x00007f3eb29d8233 in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x5584756692a8) at scenegraph/qsgthreadedrenderloop.cpp:255
#5  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x558475669210) at scenegraph/qsgthreadedrenderloop.cpp:905
#6  0x00007f3eb29d8691 in QSGRenderThread::run (this=0x558475669210) at scenegraph/qsgthreadedrenderloop.cpp:1000
#7  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x558475669210) at thread/qthread_unix.cpp:342
#8  0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 5 (Thread 0x7f3e7fb47700 (LWP 3541)):
#0  0x00007f3eae1b6bf9 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f3ea82535c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3ea82536dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3eaeb1d7cb in QEventDispatcherGlib::processEvents (this=0x7f3e78000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f3eaeabcd2a in QEventLoop::exec (this=this@entry=0x7f3e7fb46cf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f3eae8cd757 in QThread::exec (this=this@entry=0x7f3e8c087540) at thread/qthread.cpp:536
#6  0x00007f3eb291ab06 in QQuickPixmapReader::run (this=0x7f3e8c087540) at util/qquickpixmapcache.cpp:987
#7  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x7f3e8c087540) at thread/qthread_unix.cpp:342
#8  0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 4 (Thread 0x7f3e975af700 (LWP 3540)):
#0  0x00007f3eae1b20b4 in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f3ea82982b0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3ea82530b7 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3ea8253570 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f3ea82536dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f3eaeb1d7cb in QEventDispatcherGlib::processEvents (this=0x7f3e8c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007f3eaeabcd2a in QEventLoop::exec (this=this@entry=0x7f3e975aed40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7  0x00007f3eae8cd757 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#8  0x00007f3eb2484fc5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#9  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x558474f02d20) at thread/qthread_unix.cpp:342
#10 0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 3 (Thread 0x7f3e9d6fa700 (LWP 3539)):
#0  0x00007f3eae1b20b4 in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f3ea82982b0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3ea82530b7 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3ea8253570 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f3ea82536dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f3eaeb1d7cb in QEventDispatcherGlib::processEvents (this=0x7f3e90000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007f3eaeabcd2a in QEventLoop::exec (this=this@entry=0x7f3e9d6f9d30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7  0x00007f3eae8cd757 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#8  0x00007f3eb07cb555 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x7f3eb0a43da0) at thread/qthread_unix.cpp:342
#10 0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7f3e9faf4700 (LWP 3538)):
#0  0x00007f3eae1b6bf9 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f3eb35ea747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f3eb35ec36a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f3ea22b5fd0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f3eae8cec2c in QThreadPrivate::start (arg=0x558474cb5c60) at thread/qthread_unix.cpp:342
#5  0x00007f3eade8a6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f3eae1c388f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7f3eb4c9f840 (LWP 3537)):
[KCrash Handler]
#4  0x00007f3eb3195224 in std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=0x39) at /usr/include/c++/7/bits/atomic_base.h:396
#5  QAtomicOps<int>::loadRelaxed<int> (_q_value=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
#6  QBasicAtomicInteger<int>::loadRelaxed (this=0x39) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
#7  QtPrivate::RefCount::deref (this=0x39) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:66
#8  QString::~QString (this=0x7f3e7120a090, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1263
#9  QHashNode<QString, QRectF>::~QHashNode (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:147
#10 QHash<QString, QRectF>::deleteNode2 (node=0x7f3e7120a080) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:563
#11 0x00007f3eae90b449 in QHashData::free_helper (this=0x55847ca8ec70, node_delete=0x7f3eb3195220 <QHash<QString, QRectF>::deleteNode2(QHashData::Node*)>) at tools/qhash.cpp:572
#12 0x00007f3eb318ef04 in QHash<QString, QRectF>::freeData (this=<synthetic pointer>, x=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:603
#13 QHash<QString, QRectF>::~QHash (this=<synthetic pointer>, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:250
#14 QHash<QString, QRectF>::operator= (other=..., this=0x55847d588248) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:255
#15 QHash<QString, QRectF>::clear (this=0x55847d588248) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:609
#16 Plasma::SvgPrivate::eraseRenderer (this=this@entry=0x55847d588230) at ./src/plasma/svg.cpp:506
#17 0x00007f3eb318f019 in Plasma::SvgPrivate::~SvgPrivate (this=0x55847d588230, __in_chrg=<optimized out>) at ./src/plasma/svg.cpp:165
#18 0x00007f3eb318f170 in Plasma::Svg::~Svg (this=0x55847b1522e0, __in_chrg=<optimized out>) at ./src/plasma/svg.cpp:707
#19 0x00007f3eb3185819 in Plasma::FrameSvg::~FrameSvg (this=0x55847b1522e0, __in_chrg=<optimized out>) at ./src/plasma/framesvg.cpp:64
#20 0x00007f3eaeaedceb in QObjectPrivate::deleteChildren (this=0x558478c8ba90) at kernel/qobject.cpp:2123
#21 0x00007f3eaeaf72ce in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1107
#22 0x00007f3eb2a2022d in QQuickItem::~QQuickItem (this=0x55847b9eb000, __in_chrg=<optimized out>) at items/qquickitem.cpp:2383
#23 0x00007f3e895b4a55 in QQmlPrivate::QQmlElement<Plasma::FrameSvgItem>::~QQmlElement (this=0x55847b9eb000, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:111
#24 QQmlPrivate::QQmlElement<Plasma::FrameSvgItem>::~QQmlElement (this=0x55847b9eb000, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:111
#25 0x00007f3eaeaedceb in QObjectPrivate::deleteChildren (this=0x55847d814d00) at kernel/qobject.cpp:2123
#26 0x00007f3eaeaf72ce in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1107
#27 0x00007f3eb2a2022d in QQuickItem::~QQuickItem (this=0x55847d814c40, __in_chrg=<optimized out>) at items/qquickitem.cpp:2383
#28 0x00007f3eb2a40dd5 in QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement (this=0x55847d814c40, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:111
#29 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement (this=0x55847d814c40, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:111
#30 0x00007f3eaeaedceb in QObjectPrivate::deleteChildren (this=0x55847d813130) at kernel/qobject.cpp:2123
#31 0x00007f3eaeaf72ce in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1107
#32 0x00007f3eb2a2022d in QQuickItem::~QQuickItem (this=0x55847d813070, __in_chrg=<optimized out>) at items/qquickitem.cpp:2383
#33 0x00007f3eb2a40bb5 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0x55847d813070, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:111
#34 QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0x55847d813070, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:111
#35 0x00007f3eaeaf15a5 in QObject::event (this=this@entry=0x55847d813070, e=e@entry=0x5584788235d0) at kernel/qobject.cpp:1326
#36 0x00007f3eb2a1d4db in QQuickItem::event (this=0x55847d813070, ev=0x5584788235d0) at items/qquickitem.cpp:8162
#37 0x00007f3eafe029ac in QApplicationPrivate::notify_helper (this=this@entry=0x558474ca5150, receiver=receiver@entry=0x55847d813070, e=e@entry=0x5584788235d0) at kernel/qapplication.cpp:3685
#38 0x00007f3eafe09bb0 in QApplication::notify (this=0x7ffecd043d70, receiver=0x55847d813070, e=0x5584788235d0) at kernel/qapplication.cpp:3431
#39 0x00007f3eaeabe4a8 in QCoreApplication::notifyInternal2 (receiver=0x55847d813070, event=0x5584788235d0) at kernel/qcoreapplication.cpp:1075
#40 0x00007f3eaeabe67e in QCoreApplication::sendEvent (receiver=receiver@entry=0x55847d813070, event=event@entry=0x5584788235d0) at kernel/qcoreapplication.cpp:1470
#41 0x00007f3eaeac1121 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x558474c97b00) at kernel/qcoreapplication.cpp:1815
#42 0x00007f3eaeac16b8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1674
#43 0x00007f3eaeb1e103 in postEventSourceDispatch (s=0x558474d0a210) at kernel/qeventdispatcher_glib.cpp:277
#44 0x00007f3ea8253417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007f3ea8253650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007f3ea82536dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007f3eaeb1d7ac in QEventDispatcherGlib::processEvents (this=0x558474d0b5d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#48 0x00007f3eaeabcd2a in QEventLoop::exec (this=this@entry=0x7ffecd043c20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#49 0x00007f3eaeac64a0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1383
#50 0x0000558474219894 in main (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:228

The reporter indicates this bug may be a duplicate of or related to bug 421398.

Possible duplicates by query: bug 421398, bug 421204, bug 420566, bug 420495, bug 419922.

Reported using DrKonqi
Comment 1 DGLS 2020-05-14 13:41:34 UTC
Additional information:
 1. After further testing, it seems that moving *.desktop files always causes the crash to occur. 
 2. The desktop contains 122 files and folders
 3. The crashing started after the update that came out on 2020-05-14
 4. Several minutes after updating the OS froze and had to be rebooted manually
Comment 2 k2squared 2020-05-17 03:55:15 UTC
Same on Tumbleweed 20200515

Dragging an icon causes Plasma to crash, and the icon doesn't move.

If I right click>icons>sort and change the sort order, then I can move one icon one time, after which dragging another icon causes Plasma to crash.


Operating System: openSUSE Tumbleweed 20200515
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.70.0
Qt Version: 5.14.1
Kernel Version: 5.6.12-1-default
OS Type: 64-bit
Processors: 4 × Intel® Core™ i7-6600U CPU @ 2.60GHz
Memory: 15.5 GiB of RAM
Comment 3 David Edmundson 2020-05-22 16:21:34 UTC

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