Application: spectacle (23.04.2) (Compiled from sources) Qt Version: 5.15.10 Frameworks Version: 5.106.0 Operating System: Linux 6.1.38-gentoo--ZKsuOw-- x86_64 Windowing System: Wayland Distribution: "Gentoo Linux" DrKonqi: 5.27.5 [KCrashBackend] -- Information about the crash: 1. Capture a rectangular region. 2. Drag the captured image from Spectacle's window into a Google chat conversation running in Firefox to upload and share it. 3. Crash. (Crashed 3/3 times tested) The crash can be reproduced every time. -- Backtrace: Application: Spectacle (spectacle), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #6 0x00007f6735f65086 in QDrag::dragCursor(Qt::DropAction) const (this=0x0, action=action@entry=Qt::CopyAction) at /usr/src/debug/dev-qt/qtgui-5.15.10/qtbase-everywhere-src-5.15.10/src/gui/kernel/qdrag.cpp:345 #7 0x00007f6735f678d9 in QBasicDrag::updateCursor(Qt::DropAction) (this=this@entry=0x5623d4a00340, action=Qt::CopyAction) at /usr/src/debug/dev-qt/qtgui-5.15.10/qtbase-everywhere-src-5.15.10/src/gui/kernel/qsimpledrag.cpp:307 #8 0x00007f67379633b5 in QtWaylandClient::QWaylandDrag::setResponse(QPlatformDropQtResponse const&) (this=this@entry=0x5623d4a00340, response=...) at /usr/src/debug/dev-qt/qtwayland-5.15.10/qtwayland-everywhere-src-5.15.10/src/client/qwaylanddnd.cpp:123 #9 0x00007f673795f7bc in operator() (action=Qt::CopyAction, accepted=<optimized out>, __closure=<optimized out>) at /usr/src/debug/dev-qt/qtwayland-5.15.10/qtwayland-everywhere-src-5.15.10/src/client/qwaylanddatadevice.cpp:140 #10 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<bool, Qt::DropAction>, void, QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)> >::call (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #11 QtPrivate::Functor<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2>::call<QtPrivate::List<bool, Qt::DropAction>, void> (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #12 QtPrivate::QFunctorSlotObject<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2, QtPrivate::List<bool, Qt::DropAction>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #13 0x00007f6735ab76c4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe044c98b0, r=0x5623d4a0f6b0, this=0x5623d59f4c10) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #14 doActivate<false>(QObject*, int, void**) (sender=0x5623d50c8b90, signal_index=5, argv=0x7ffe044c98b0) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qobject.cpp:3925 #15 0x00007f6735ab1417 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f6737a15540 <QtWaylandClient::QWaylandDataSource::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffe044c98b0) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qobject.cpp:3985 #16 0x00007f673796d2a7 in QtWaylandClient::QWaylandDataSource::dndResponseUpdated(bool, Qt::DropAction) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qwaylanddatasource_p.cpp:184 #17 0x00007f6737968809 in QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*) (data=0x5623d50c8ba0, object=<optimized out>, mime_type=0x7f6724002e3c "text/uri-list") at qwayland-wayland.cpp:697 #18 0x00007f673689628a in ffi_call_unix64 () at /usr/src/debug/dev-libs/libffi-3.4.4-r1/libffi-3.4.4/src/x86/unix64.S:104 #19 0x00007f67368956a4 in ffi_call_int (cif=cif@entry=0x7ffe044c9ae0, fn=fn@entry=0x7f6737968750 <QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=<optimized out>, closure=closure@entry=0x0) at /usr/src/debug/dev-libs/libffi-3.4.4-r1/libffi-3.4.4/src/x86/ffi64.c:673 #20 0x00007f6736895dfd in ffi_call (cif=cif@entry=0x7ffe044c9ae0, fn=0x7f6737968750 <QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe044c9bb0) at /usr/src/debug/dev-libs/libffi-3.4.4-r1/libffi-3.4.4/src/x86/ffi64.c:710 #21 0x00007f673802d924 in wl_closure_invoke (closure=0x7f6724002d60, flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>) at ../wayland-1.22.0/src/connection.c:1025 #22 0x00007f6738029c68 in dispatch_event (display=display@entry=0x5623d49fc060, queue=0x5623d49fc150) at ../wayland-1.22.0/src/wayland-client.c:1631 #23 0x00007f673802b66c in dispatch_queue (queue=0x5623d49fc150, display=0x5623d49fc060) at ../wayland-1.22.0/src/wayland-client.c:1777 #24 wl_display_dispatch_queue_pending (display=0x5623d49fc060, queue=0x5623d49fc150) at ../wayland-1.22.0/src/wayland-client.c:2019 #25 0x00007f673793f196 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /usr/src/debug/dev-qt/qtwayland-5.15.10/qtwayland-everywhere-src-5.15.10/src/client/qwaylanddisplay.cpp:255 #26 0x00007f6735aaf624 in QObject::event(QEvent*) (this=0x5623d49fbf00, e=0x7f6720003e00) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qobject.cpp:1347 #27 0x00007f673716342e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5623d49fbf00, e=0x7f6720003e00) at /usr/src/debug/dev-qt/qtwidgets-5.15.10-r1/qtbase-everywhere-src-5.15.10/src/widgets/kernel/qapplication.cpp:3640 #28 0x00007f6735a84218 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5623d49fbf00, event=0x7f6720003e00) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qcoreapplication.cpp:1064 #29 0x00007f6735a8440e in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qcoreapplication.cpp:1462 #30 0x00007f6735a87753 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x5623d49be550) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qcoreapplication.cpp:1821 #31 0x00007f6735a879f8 in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qcoreapplication.cpp:1680 #32 0x00007f6735ad6393 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x5623d4a0e770) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qeventdispatcher_glib.cpp:277 #33 0x00007f673351458c in g_main_dispatch (context=0x7f6728000ee0) at ../glib-2.76.3/glib/gmain.c:3460 #34 g_main_context_dispatch (context=context@entry=0x7f6728000ee0) at ../glib-2.76.3/glib/gmain.c:4200 #35 0x00007f6733514838 in g_main_context_iterate (context=context@entry=0x7f6728000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.76.3/glib/gmain.c:4276 #36 0x00007f67335148cc in g_main_context_iteration (context=0x7f6728000ee0, may_block=1) at ../glib-2.76.3/glib/gmain.c:4343 #37 0x00007f6735ad5e96 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5623d49dce00, flags=...) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/src/corelib/kernel/qeventdispatcher_glib.cpp:423 #38 0x00007f6735a82c3b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe044ca110, flags=..., flags@entry=...) at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/include/QtCore/../../src/corelib/global/qflags.h:69 #39 0x00007f6735a8af16 in QCoreApplication::exec() () at /usr/src/debug/dev-qt/qtcore-5.15.10/qtbase-everywhere-src-5.15.10/include/QtCore/../../src/corelib/global/qflags.h:121 #40 0x00007f6735f1c3cc in QGuiApplication::exec() () at /usr/src/debug/dev-qt/qtgui-5.15.10/qtbase-everywhere-src-5.15.10/src/gui/kernel/qguiapplication.cpp:1870 #41 0x00007f67371633a5 in QApplication::exec() () at /usr/src/debug/dev-qt/qtwidgets-5.15.10-r1/qtbase-everywhere-src-5.15.10/src/widgets/kernel/qapplication.cpp:2832 #42 0x00005623d2c5d726 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kde-apps/spectacle-23.04.2/spectacle-23.04.2/src/Main.cpp:127 [Inferior 1 (process 26913) detached] Reported using DrKonqi
also happens with Qt6 Application: Spectacle (spectacle), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #5 0x00007f75eb523356 in QtPrivate::QExplicitlySharedDataPointerV2<QMapData<std::map<Qt::DropAction, QPixmap, std::less<Qt::DropAction>, std::allocator<std::pair<Qt::DropAction const, QPixmap> > > > >::operator bool (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/tools/qshareddata_impl.h:117 #6 QMap<Qt::DropAction, QPixmap>::find (key=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/tools/qmap.h:649 #7 QMap<Qt::DropAction, QPixmap>::constFind (key=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/tools/qmap.h:656 #8 QDrag::dragCursor (this=0x0, action=Qt::CopyAction) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/gui/kernel/qdrag.cpp:282 #9 0x00007f75eb529869 in QBasicDrag::updateCursor (this=0x1420690, action=Qt::CopyAction) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/gui/kernel/qsimpledrag.cpp:274 #10 0x00007f75ed777d81 in operator() (action=Qt::CopyAction, accepted=true, __closure=<optimized out>) at /usr/src/debug/qtwayland-everywhere-src-6.5.1/src/client/qwaylanddatadevice.cpp:105 #11 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<bool, Qt::DropAction>, void, QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)> >::call (arg=<optimized out>, f=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:127 #12 QtPrivate::Functor<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2>::call<QtPrivate::List<bool, Qt::DropAction>, void> (arg=<optimized out>, f=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:241 #13 QtPrivate::QFunctorSlotObject<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2, QtPrivate::List<bool, Qt::DropAction>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:409 #14 0x00007f75eabba483 in QtPrivate::QSlotObjectBase::call (a=0x7ffca84b79b0, r=0x1413000, this=0x19edbb0) at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/kernel/qobjectdefs_impl.h:363 #15 doActivate<false> (sender=0x1bbdef0, signal_index=5, argv=0x7ffca84b79b0) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qobject.cpp:3992 #16 0x00007f75ed7731f9 in QtWaylandClient::QWaylandDataSource::dndResponseUpdated (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/qtwayland-everywhere-src-6.5.1/build/src/client/WaylandClient_autogen/include/moc_qwaylanddatasource_p.cpp:238 #17 0x00007f75ed76ab7e in QtWayland::wl_data_source::handle_target (data=0x1bbdf00, object=<optimized out>, mime_type=0x7f75d80046cc "application/vnd.portal.filetransfer") at /usr/src/debug/qtwayland-everywhere-src-6.5.1/build/src/client/qwayland-wayland.cpp:734 #18 0x00007f75eb87b962 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #19 0x00007f75eb8782df in ffi_call_int (cif=cif@entry=0x7ffca84b7c10, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673 #20 0x00007f75eb87af26 in ffi_call (cif=cif@entry=0x7ffca84b7c10, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffca84b7ce0) at ../src/x86/ffi64.c:710 #21 0x00007f75ee161421 in wl_closure_invoke (closure=0x7f75d80045f0, flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>) at ../../src/wayland/src/connection.c:1025 #22 0x00007f75ee15db79 in dispatch_event (display=display@entry=0x1407500, queue=0x14075f0) at ../../src/wayland/src/wayland-client.c:1631 #23 0x00007f75ee15f374 in dispatch_queue (queue=0x14075f0, display=0x1407500) at ../../src/wayland/src/wayland-client.c:1777 #24 wl_display_dispatch_queue_pending (display=0x1407500, queue=0x14075f0) at ../../src/wayland/src/wayland-client.c:2019 #25 0x00007f75ed735662 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qtwayland-everywhere-src-6.5.1/src/client/qwaylanddisplay.cpp:234 #26 0x00007f75eaba4170 in QObject::event (this=0x1411850, e=0x7f75d40019f0) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qobject.cpp:1391 #27 0x00007f75ecfbecce in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x1411850, e=0x7f75d40019f0) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/widgets/kernel/qapplication.cpp:3287 #28 0x00007f75eab65188 in QCoreApplication::notifyInternal2 (receiver=0x1411850, event=0x7f75d40019f0) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qcoreapplication.cpp:1115 #29 0x00007f75eab651c9 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qcoreapplication.cpp:1533 #30 0x00007f75eab654c7 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x13fb220) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qcoreapplication.cpp:1895 #31 0x00007f75ead541e3 in postEventSourceDispatch (s=0x1441930) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventdispatcher_glib.cpp:243 #32 0x00007f75e8516988 in g_main_dispatch (context=0x7f75dc000f10) at ../glib/gmain.c:3460 #33 g_main_context_dispatch (context=context@entry=0x7f75dc000f10) at ../glib/gmain.c:4200 #34 0x00007f75e8516d98 in g_main_context_iterate (context=context@entry=0x7f75dc000f10, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276 #35 0x00007f75e8516e2c in g_main_context_iteration (context=0x7f75dc000f10, may_block=1) at ../glib/gmain.c:4343 #36 0x00007f75ead51d2c in QEventDispatcherGlib::processEvents (this=0x13b1110, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventdispatcher_glib.cpp:393 #37 0x00007f75eab6fafa in QEventLoop::exec (this=0x7ffca84b8270, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/global/qflags.h:34 #38 0x00007f75eab69016 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.5.1/build/include/QtCore/../../../src/corelib/global/qflags.h:74 #39 0x00007f75eb1dc32c in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/gui/kernel/qguiapplication.cpp:1894 #40 0x00007f75ecfbc0c5 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.5.1/src/widgets/kernel/qapplication.cpp:2566 #41 0x000000000042831f in main (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde6/src/spectacle/src/Main.cpp:127 [Inferior 1 (process 4463) detached]
For Qt6: https://invent.kde.org/qt/qt/qtwayland/-/commit/22daca49b807fefba58113a06b86df4274e49f62 For Qt5: https://invent.kde.org/qt/qt/qtwayland/-/commit/d984aa55a90aece353457bdb4e8d4b68052a79d7
*** This bug has been marked as a duplicate of bug 470925 ***