SUMMARY When clicking on the clean clipboard history button, plasmashell crashes. I am not sure why but I think it has something to do with having clipboard history, then rebuilding plasmashell (or just restarting PC) and then trying to clear it. STEPS TO REPRODUCE 1. Add a lot of text and images (like with spectacle) to your clipboard 2. Restart PC and/or rebuild plasma dev session 3. Log in and try to clean clipboard OBSERVED RESULT Plasmashell goes crash EXPECTED RESULT No crash! SOFTWARE/OS VERSIONS Operating System: Fedora Linux 40 KDE Plasma Version: 6.1.80 KDE Frameworks Version: 6.4.0 Qt Version: 6.7.1 Kernel Version: 6.9.7-200.fc40.x86_64 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 3600 6-Core Processor Memory: 15.5 GiB of RAM Graphics Processor: AMD Radeon RX 6600 ADDITIONAL INFORMATION Here's a backtrace: Program terminated with signal SIGSEGV, Segmentation fault. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7fc7703adb80 (LWP 6748))] Missing separate debuginfos, use: dnf debuginfo-install ffmpeg-libs-6.1.1-11.fc40.x86_64 x264-libs-0.164-13.20231001git31e19f92.fc40.x86_64 x265-libs-3.6-2.fc40.x86_64 (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007fc7756ab1b3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:78 #2 0x00007fc77565365e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007fc77940e9eb in KCrash::defaultCrashHandler (sig=11) at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:597 #4 0x00007fc775653710 in <signal handler called> () at /lib64/libc.so.6 #5 0x000000000f3230e0 in ??? () #6 0x00007fc7118861fe in operator<< (lhs=..., rhs=0x10fd26d0) at /home/akseli/Repositories/kde/src/plasma-workspace/klipper/historyitem.h:116 #7 HistoryModel::saveHistory (this=0x10fd4560, empty=empty@entry=false) at /home/akseli/Repositories/kde/src/plasma-workspace/klipper/historymodel.cpp:296 #8 0x00007fc71186beb1 in Klipper::slotAskClearHistory (this=this@entry=0x10fba9e0) at /home/akseli/Repositories/kde/src/plasma-workspace/klipper/klipper.cpp:687 #9 0x00007fc711866329 in ClipboardJob::start (this=0x1548eb70) at /home/akseli/Repositories/kde/src/plasma-workspace/klipper/clipboardjob.cpp:36 #10 0x00007fc775debdeb in QObject::event (this=0x1548eb70, e=0x156e96c0) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qobject.cpp:1452 #11 0x00007fc77878b168 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x1548eb70, e=0x156e96c0) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287 #12 0x00007fc775d95b18 in QCoreApplication::notifyInternal2 (receiver=0x1548eb70, event=0x156e96c0) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1134 #13 0x00007fc775d95d7d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1575 #14 0x00007fc775d998c1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xf3230e0) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1932 #15 0x00007fc775d99b6d in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1789 #16 0x00007fc77607d39f in postEventSourceDispatch (s=0xf411c90) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:244 #17 0x00007fc77526de8c in g_main_dispatch (context=0x7fc75c000f00) at ../glib/gmain.c:3344 --Type <RET> for more, q to quit, c to continue without paging--c #18 g_main_context_dispatch_unlocked (context=0x7fc75c000f00) at ../glib/gmain.c:4152 #19 0x00007fc7752cfc98 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fc75c000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217 #20 0x00007fc77526f383 in g_main_context_iteration (context=0x7fc75c000f00, may_block=1) at ../glib/gmain.c:4282 #21 0x00007fc77607cb53 in QEventDispatcherGlib::processEvents (this=0xf328e30, flags=...) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:394 #22 0x00007fc775da2713 in QEventLoop::exec (this=this@entry=0x7fff50d534f0, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/global/qflags.h:34 #23 0x00007fc775d9e69c in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/corelib/global/qflags.h:74 #24 0x00007fc7767d53dd in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1926 #25 0x00007fc77878b0d9 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.1-2.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2555 #26 0x0000000000427a86 in main (argc=<optimized out>, argv=<optimized out>) at /home/akseli/Repositories/kde/src/plasma-workspace/shell/main.cpp:188
If I clean the items one at a time, i get no crashes. But if I even have one item (even after cleaning the old items) and try to clean the clipboard, i get a crash
And after crashing and restarting plasmashell, the old items are in the clipboard, even I just cleaned them out individually. So the clipboard history is broken somehow.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4495
Git commit 65e966434c5ae5586f18e4f94f775ef72190f72c by Akseli Lahtinen. Committed on 04/07/2024 at 08:20. Pushed by akselmo into branch 'master'. klipper.cpp: Tell saveHistory its saving empty history Need to make sure we clear the model and do not use empty list of items when saving history. Also, without this true parameter in klipper.cpp, saveHistory will crash plasmashell. M +1 -1 klipper/historymodel.cpp M +1 -1 klipper/klipper.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/65e966434c5ae5586f18e4f94f775ef72190f72c
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4498