Bug 516717 - Spectacle crashed in wl_map_insert_at after attempting to share a rectangular selection screenshot via KDE Connect
Summary: Spectacle crashed in wl_map_insert_at after attempting to share a rectangular...
Status: RESOLVED FIXED
Alias: None
Product: Spectacle
Classification: Applications
Component: General (other bugs)
Version First Reported In: 6.6.0
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Noah Davis
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-25 13:38 UTC by Eshan
Modified: 2026-03-02 22:20 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eshan 2026-02-25 13:38:46 UTC
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 ()
Comment 1 Nate Graham 2026-02-25 15:10:42 UTC
I can reproduce this crash in current git master on KDE Linux too.
Comment 2 Bug Janitor Service 2026-02-25 20:39:20 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/spectacle/-/merge_requests/513
Comment 3 Noah Davis 2026-03-02 22:10:23 UTC
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
Comment 4 Noah Davis 2026-03-02 22:20:41 UTC
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