SUMMARY Spectacle crashed after I tried to send a "rectangular selection" screenshot directly from the selection screen to my phone via kde connect (which is an option in the spectacle share/export menu) STEPS TO REPRODUCE 1. Take a rectangular screenshot 2. In the selection (not the preview) screen, click on the export/share button in the toolbar/panel and select kde-connect 3. It crashes OBSERVED RESULT Spectacle crashes EXPECTED RESULT Spectacle should not crash, the selection image should be shared to the device. Operating System: Fedora Linux 43 KDE Plasma Version: 6.6.0 KDE Frameworks Version: 6.23.0 Qt Version: 6.10.2 Kernel Version: 6.18.12-200.fc43.x86_64 (64-bit) Graphics Platform: Wayland Processors: 6 × Intel® Core™ i5-9400F CPU @ 2.90GHz Memory: 8 GiB of RAM (7.7 GiB usable) Graphics Processor: NVIDIA GeForce GTX 1650 Manufacturer: Gigabyte Technology Co., Ltd. Product Name: H310M S2 2.0 ADDITIONAL INFORMATION bt: (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 0x00007f906da69493 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89 #2 0x00007f906da0f15e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007f907146e0d6 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kf6-kcrash-6.23.0-1.fc43.x86_64/src/kcrash.cpp:623 #4 <signal handler called> #5 0x00007f9071dad731 in wl_map_insert_at (map=map@entry=0x5631da88a3d0, flags=flags@entry=1, i=<optimized out>, data=<optimized out>) at ../src/wayland-util.c:290 #6 0x00007f9071dad8a1 in proxy_destroy (proxy=proxy@entry=0x5631dc01d850) at ../src/wayland-client.c:577 #7 0x00007f9071daddf7 in wl_proxy_destroy_caller_locks (proxy=0x5631dc01d850) at ../src/wayland-client.c:601 #8 wl_proxy_marshal_array_flags (proxy=0x5631dc01d850, opcode=opcode@entry=1, interface=interface@entry=0x0, version=version@entry=2, flags=flags@entry=1, args=args@entry=0x7ffc0c836290) at ../src/wayland-client.c:953 #9 0x00007f9071daead2 in wl_proxy_marshal_flags (proxy=<optimized out>, opcode=1, interface=0x0, version=2, flags=1) at ../src/wayland-client.c:863 #10 0x00007f9070e904fb in wl_shm_pool_destroy (wl_shm_pool=0x5631dc01d850) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/redhat-linux-build/src/plugins/platforms/wayland/wayland-wayland-client-protocol.h:1435 #11 QtWaylandClient::QWaylandShmBuffer::~QWaylandShmBuffer (this=0x5631dc0f89b0) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp:114 #12 0x00007f9070e91afd in QtWaylandClient::QWaylandShmBuffer::~QWaylandShmBuffer (this=0x5631dc0f89b0) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp:108 #13 qDeleteAll<QList<QtWaylandClient::QWaylandShmBuffer*>::const_iterator> (begin=..., end=...) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/corelib/tools/qalgorithms.h:29 #14 qDeleteAll<QList<QtWaylandClient::QWaylandShmBuffer*> > (c=...) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/corelib/tools/qalgorithms.h:37 #15 QtWaylandClient::QWaylandShmBackingStore::~QWaylandShmBackingStore (this=0x7f9040006b00) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp:177 --Type <RET> for more, q to quit, c to continue without paging--c #16 0x00007f9070e91bc5 in QtWaylandClient::QWaylandShmBackingStore::~QWaylandShmBackingStore (this=0x7f9040006b00) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp:179 #17 0x00007f906e8add20 in QBackingStore::~QBackingStore (this=0x5631dc0b6d80) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/gui/painting/qbackingstore.cpp:96 #18 0x00007f90706aedc5 in QWidgetWindow::~QWidgetWindow (this=0x5631dc039250) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidgetwindow.cpp:174 #19 0x00007f90706aee45 in QWidgetWindow::~QWidgetWindow (this=0x5631dc039250) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidgetwindow.cpp:180 #20 0x00007f907067949a in QWidgetPrivate::deleteTLSysExtra (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidget.cpp:1725 #21 QWidgetPrivate::deleteTLSysExtra (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidget.cpp:1718 #22 0x00007f907068df78 in QWidget::destroy (this=this@entry=0x5631dbe59720, destroyWindow=destroyWindow@entry=true, destroySubWindows=destroySubWindows@entry=true) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidget.cpp:12657 #23 0x00007f9070696008 in QWidget::~QWidget (this=0x5631dbe59720) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidget.cpp:1578 #24 0x00007f9070841c55 in QMenu::~QMenu (this=0x5631dbe59720) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/widgets/qmenu.cpp:1791 #25 0x00007f906e0e0a12 in QObjectPrivate::deleteChildren (this=this@entry=0x5631dbe572c0) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/corelib/kernel/qobject.cpp:2212 #26 0x00007f9070696248 in QWidget::~QWidget ( this=this@entry=0x5631b9945a20 <_ZZN13QGlobalStaticIN14QtGlobalStatic6HolderIN12_GLOBAL__N_127Q_QGS_privateExportMenuSelfEEEE8instanceEvE6holder.lto_priv.0>) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/kernel/qwidget.cpp:1573 #27 0x00007f9070841bdd in QMenu::~QMenu ( this=this@entry=0x5631b9945a20 <_ZZN13QGlobalStaticIN14QtGlobalStatic6HolderIN12_GLOBAL__N_127Q_QGS_privateExportMenuSelfEEEE8instanceEvE6holder.lto_priv.0>) at /usr/src/debug/qt6-qtbase-6.10.2-2.fc43.x86_64/src/widgets/widgets/qmenu.cpp:1791 #28 0x00005631b96fbdaf in SpectacleMenu::~SpectacleMenu (this=<optimized out>, this=<optimized out>) at /usr/src/debug/spectacle-6.6.0-2.fc43.x86_64/src/Gui/SpectacleMenu.h:14 #29 ExportMenu::~ExportMenu (this=<optimized out>, this=<optimized out>) at /usr/src/debug/spectacle-6.6.0-2.fc43.x86_64/src/Gui/ExportMenu.h:24 #30 ExportMenuSingleton::~ExportMenuSingleton (this=<optimized out>, this=<optimized out>) at /usr/src/debug/spectacle-6.6.0-2.fc43.x86_64/src/Gui/ExportMenu.cpp:36 #31 QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_privateExportMenuSelf>::~Holder (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qglobalstatic.h:54 #32 0x00007f906da119e1 in __run_exit_handlers (status=0, listp=0x7f906dbde680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:118 #33 0x00007f906da11abe in __GI_exit (status=<optimized out>) at exit.c:148 #34 0x00007f906d9f85bc in __libc_start_call_main (main=main@entry=0x5631b96b32b0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7ffc0c836918) at ../sysdeps/nptl/libc_start_call_main.h:74 #35 0x00007f906d9f8668 in __libc_start_main_impl (main=0x5631b96b32b0 <main(int, char**)>, argc=2, argv=0x7ffc0c836918, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc0c836908) at ../csu/libc-start.c:360 #36 0x00005631b96b5825 in _start ()
I can reproduce this crash in current git master on KDE Linux too.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/spectacle/-/merge_requests/513
Git commit d2b8339fd84302fd66865b9a26c3c05e90834cd9 by Noah Davis. Committed on 02/03/2026 at 11:48. Pushed by ndavis into branch 'master'. ExportMenu: fix crash when exporting to KDE Connect in rectangle mode FIXED-IN: 6.6.2 M +7 -8 src/Gui/ExportMenu.cpp M +0 -1 src/Gui/ExportMenu.h https://invent.kde.org/plasma/spectacle/-/commit/d2b8339fd84302fd66865b9a26c3c05e90834cd9
Git commit 4375ca321deb09895379f26d5d9dbb44c30c7f70 by Noah Davis. Committed on 02/03/2026 at 22:20. Pushed by ndavis into branch 'Plasma/6.6'. ExportMenu: fix crash when exporting to KDE Connect in rectangle mode FIXED-IN: 6.6.2 (cherry picked from commit d2b8339fd84302fd66865b9a26c3c05e90834cd9) Co-authored-by: Noah Davis <noahadvs@gmail.com> M +7 -8 src/Gui/ExportMenu.cpp M +0 -1 src/Gui/ExportMenu.h https://invent.kde.org/plasma/spectacle/-/commit/4375ca321deb09895379f26d5d9dbb44c30c7f70