Bug 472161 - Closing "undo deleting widget" notification for certain widgets crashes Plasma in KCoreDirListerCache::joburl
Summary: Closing "undo deleting widget" notification for certain widgets crashes Plasm...
Status: RESOLVED NOT A BUG
Alias: None
Product: plasmashell
Classification: Plasma
Component: Icon widget (other bugs)
Version First Reported In: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-07-11 16:35 UTC by Nate Graham
Modified: 2023-08-02 21:13 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2023-07-11 16:35:02 UTC
Found while reproducing Bug 472044. This makes it happen 100% of the time for me:

STEPS TO REPRODUCE
1. Drag any file in Dolphin 
2. Drop onto folder view on the desktop
3. In drop menu choose "Add icon"
4. Right-click on it and click "Remove Icon"
5. Click on the close button of the notification to undo removing it

OBSERVED RESULT
Plasma crashes:

#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fcca10b08b3 in __pthread_kill_internal (signo=11, threadid=<optimized out>)
    at pthread_kill.c:78
#2  0x00007fcca105fabe in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007fcca48ba658 in KCrash::defaultCrashHandler(int) (sig=11)
    at /home/nate/kde/src/kcrash/src/kcrash.cpp:601
#4  0x00007fcca105fb70 in <signal handler called> () at /lib64/libc.so.6
#5  QUrl::isEmpty() const (this=this@entry=0x4035000000000128)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/io/qurl.cpp:1893
#6  0x00007fcca1762f55 in QUrl::isValid() const (this=0x4035000000000128)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/io/qurl.cpp:1879
#7  0x00007fcca49d2034 in KCoreDirListerCache::joburl(KIO::ListJob*)
    (this=<optimized out>, job=0x67529e0) at /home/nate/kde/src/kio/src/core/kcoredirlister.cpp:1856
#8  0x00007fcca49e705e in KCoreDirListerCache::slotUpdateResult(KJob*)
    (this=0x7fcca4a788a0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_kDirListerCache> >::instance()::holder>, j=0x67529e0) at /home/nate/kde/src/kio/src/core/kcoredirlister.cpp:1662
#9  0x00007fcca17cf797 in QObject::event(QEvent*)
    (this=0x7fcca4a788a0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_kDirListerCache> >::instance()::holder>, e=0x7fcb3c06d1c0)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:1391
#10 0x00007fcca2fc0b08 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x7fcca4a788a0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_kDirListerCache> >::instance()::holder>, e=0x7fcb3c06d1c0)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/widgets/kernel/qapplication.cpp:3287
#11 0x00007fcca177c308 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x7fcca4a788a0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_kDirListerCache> >::instance()::holder>, event=0x7fcb3c06d1c0)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1115
#12 0x00007fcca177c50d in QCoreApplication::sendEvent(QObject*, QEvent*)
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1533
#13 0x00007fcca177fd75 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
    (receiver=0x0, event_type=0, data=0x24ae660)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1895
#14 0x00007fcca17800ad in QCoreApplication::sendPostedEvents(QObject*, int)
    (receiver=<optimized out>, event_type=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1754
#15 0x00007fcca1a206df in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x2505fc0)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#16 0x00007fcca0b6639c in g_main_dispatch (context=0x7fcc88000f10) at ../glib/gmain.c:3460
#17 g_main_context_dispatch (context=0x7fcc88000f10) at ../glib/gmain.c:4200
#18 0x00007fcca0bc4438 in g_main_context_iterate.isra.0
    (context=0x7fcc88000f10, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#19 0x00007fcca0b63a23 in g_main_context_iteration (context=0x7fcc88000f10, may_block=1)
    at ../glib/gmain.c:4343
#20 0x00007fcca1a1ff7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=0x24b3d00, flags=...)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#21 0x00007fcca1788e93 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7fff6e819ba0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/global/qflags.h:34
#22 0x00007fcca1784b3d in QCoreApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/global/qflags.h:74
#23 0x00007fcca1ff85cd in QGuiApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/gui/kernel/qguiapplication.cpp:1894
#24 0x00007fcca2fc0a79 in QApplication::exec() ()
    at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/widgets/kernel/qapplication.cpp:2566
#25 0x0000000000424fc0 in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /home/nate/kde/src/plasma-workspace/shell/main.cpp:242
Comment 1 Nate Graham 2023-07-16 07:57:03 UTC
Can reproduce this 100% when closing the "Undo deleting widget" notification for Icon and Folder View widgets that are on the desktop.
Comment 2 Nate Graham 2023-08-02 21:13:17 UTC
...That was actually Bug 472892, and the original crash was caused by me not rebuilding everything and deleting the stale files following some ABI changes. Closing.