Application: plasmashell (5.27.3) Qt Version: 5.15.8 Frameworks Version: 5.104.0 Operating System: Linux 6.2.6-arch1-1 x86_64 Windowing System: Wayland Distribution: "Arch Linux" DrKonqi: 5.27.3 [KCrashBackend] -- Information about the crash: When I tried to drag a screenshot from a Spectacle notification to a Discord window, plasmashell crashed. The reporter is unsure if this crash is reproducible. -- Backtrace: Application: Plasma (plasmashell), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>} [KCrash Handler] #6 QMapData<Qt::DropAction, QPixmap>::root() const (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qmap.h:208 #7 QMapData<Qt::DropAction, QPixmap>::findNode(Qt::DropAction const&) const (akey=<synthetic pointer>: <optimized out>, this=0x0) at ../../include/QtCore/../../src/corelib/tools/qmap.h:287 #8 QMap<Qt::DropAction, QPixmap>::constFind(Qt::DropAction const&) const (akey=<optimized out>, this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qmap.h:852 #9 QDrag::dragCursor(Qt::DropAction) const (this=0x55bdd59fef10, action=action@entry=Qt::IgnoreAction) at kernel/qdrag.cpp:349 #10 0x00007fe7e357d07e in QBasicDrag::updateCursor(Qt::DropAction) (this=this@entry=0x55bdd524c700, action=Qt::IgnoreAction) at kernel/qsimpledrag.cpp:307 #11 0x00007fe7e494117c in QtWaylandClient::QWaylandDrag::setResponse(QPlatformDropQtResponse const&) (this=this@entry=0x55bdd524c700, response=...) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddnd.cpp:123 #12 0x00007fe7e494669e in operator() (action=Qt::MoveAction, accepted=<optimized out>, __closure=<optimized out>) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddatadevice.cpp:140 #13 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/qt/QtCore/qobjectdefs_impl.h:146 #14 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/qt/QtCore/qobjectdefs_impl.h:256 #15 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/qt/QtCore/qobjectdefs_impl.h:443 #16 0x00007fe7e30bea71 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc01b9b3b0, r=<optimized out>, this=0x55bddb120d40, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #17 doActivate<false>(QObject*, int, void**) (sender=0x55bdd7bdc600, signal_index=5, argv=0x7ffc01b9b3b0) at kernel/qobject.cpp:3923 #18 0x00007fe7e494a9de in QtWaylandClient::QWaylandDataSource::dndResponseUpdated(bool, Qt::DropAction) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qwaylanddatasource_p.cpp:184 #19 0x00007fe7e4949596 in QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*) (data=0x55bdd7bdc610, object=<optimized out>, mime_type=0x7fe7d403944c "") at /usr/src/debug/qt5-wayland/build/src/client/qwayland-wayland.cpp:697 #20 0x00007fe7e48354f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #21 0x00007fe7e4831f5e in ffi_call_int (cif=cif@entry=0x7ffc01b9b5d0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673 #22 0x00007fe7e4834b73 in ffi_call (cif=cif@entry=0x7ffc01b9b5d0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffc01b9b6a0) at ../src/x86/ffi64.c:710 #23 0x00007fe7e53ca645 in wl_closure_invoke (closure=closure@entry=0x7fe7d4039370, target=<optimized out>, target@entry=0x55bdd87efe00, opcode=opcode@entry=0, data=<optimized out>, flags=1) at ../wayland-1.21.0/src/connection.c:1025 #24 0x00007fe7e53cae03 in dispatch_event (display=display@entry=0x55bdd524e7c0, queue=0x55bdd524e890) at ../wayland-1.21.0/src/wayland-client.c:1595 #25 0x00007fe7e53caffc in dispatch_queue (queue=0x55bdd524e890, display=0x55bdd524e7c0) at ../wayland-1.21.0/src/wayland-client.c:1741 #26 wl_display_dispatch_queue_pending (display=0x55bdd524e7c0, queue=0x55bdd524e890) at ../wayland-1.21.0/src/wayland-client.c:1983 #27 0x00007fe7e4922bf6 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:253 #28 0x00007fe7e30b1bb0 in QObject::event(QEvent*) (this=0x55bdd524a520, e=0x7fe7d0009600) at kernel/qobject.cpp:1347 #29 0x00007fe7e3d78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55bdd524a520, e=0x7fe7d0009600) at kernel/qapplication.cpp:3640 #30 0x00007fe7e308df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55bdd524a520, event=0x7fe7d0009600) at kernel/qcoreapplication.cpp:1064 #31 0x00007fe7e308dfb3 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462 #32 0x00007fe7e308ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55bdd523d670) at kernel/qcoreapplication.cpp:1821 #33 0x00007fe7e30d4e88 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55bdd5263210) at kernel/qeventdispatcher_glib.cpp:277 #34 0x00007fe7e1da4afb in g_main_dispatch (context=0x7fe7d8000ee0) at ../glib/glib/gmain.c:3460 #35 g_main_context_dispatch (context=0x7fe7d8000ee0) at ../glib/glib/gmain.c:4200 #36 0x00007fe7e1e015d9 in g_main_context_iterate.constprop.0 (context=0x7fe7d8000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276 #37 0x00007fe7e1da2382 in g_main_context_iteration (context=0x7fe7d8000ee0, may_block=1) at ../glib/glib/gmain.c:4343 #38 0x00007fe7e30d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55bdd520f9d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #39 0x00007fe7e30866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x55bdda60cf60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #40 0x00007fe7e35748ba in QBasicDrag::drag(QDrag*) (this=0x55bdd524c700, o=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #41 0x00007fe7e3576cc0 in QDragManager::drag(QDrag*) (this=0x55bdda2405c0, o=o@entry=0x55bdd59fef10) at kernel/qdnd.cpp:117 #42 0x00007fe7e35771bf in QDrag::exec(QFlags<Qt::DropAction>, Qt::DropAction) (this=0x55bdd59fef10, supportedActions=..., defaultDropAction=defaultDropAction@entry=Qt::IgnoreAction) at kernel/qdrag.cpp:283 #43 0x00007fe7e357726c in QDrag::exec(QFlags<Qt::DropAction>) (this=<optimized out>, supportedActions=...) at kernel/qdrag.cpp:238 #44 0x00007fe7ccc2fac0 in DragHelper::doDrag(QQuickItem*, QUrl const&, QPixmap const&) (pixmap=..., url=..., item=<optimized out>, this=0x55bdd8e59030) at /usr/include/qt/QtCore/qflags.h:121 #45 DragHelper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55bdd8e59030, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/plasma-workspace/build/applets/notifications/org.kde.plasma.notifications_autogen/EWIEGA46WW/moc_draghelper.cpp:119 #46 0x00007fe7e30b1bb0 in QObject::event(QEvent*) (this=0x55bdd8e59030, e=0x7fe7d00045c0) at kernel/qobject.cpp:1347 #47 0x00007fe7e3d78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55bdd8e59030, e=0x7fe7d00045c0) at kernel/qapplication.cpp:3640 #48 0x00007fe7e308df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55bdd8e59030, event=0x7fe7d00045c0) at kernel/qcoreapplication.cpp:1064 #49 0x00007fe7e308dfb3 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462 #50 0x00007fe7e308ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55bdd523d670) at kernel/qcoreapplication.cpp:1821 #51 0x00007fe7e30d4e88 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55bdd5263210) at kernel/qeventdispatcher_glib.cpp:277 #52 0x00007fe7e1da4afb in g_main_dispatch (context=0x7fe7d8000ee0) at ../glib/glib/gmain.c:3460 #53 g_main_context_dispatch (context=0x7fe7d8000ee0) at ../glib/glib/gmain.c:4200 #54 0x00007fe7e1e015d9 in g_main_context_iterate.constprop.0 (context=0x7fe7d8000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276 #55 0x00007fe7e1da2382 in g_main_context_iteration (context=0x7fe7d8000ee0, may_block=1) at ../glib/glib/gmain.c:4343 #56 0x00007fe7e30d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55bdd520f9d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #57 0x00007fe7e30866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffc01b9c200, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #58 0x00007fe7e3091219 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #59 0x00007fe7e3539fe2 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870 #60 0x00007fe7e3d76f2a in QApplication::exec() () at kernel/qapplication.cpp:2832 #61 0x000055bdd44ce168 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.27.3/shell/main.cpp:235 [Inferior 1 (process 3937) detached] Reported using DrKonqi
Was the notification gone before you finished the drag?
Interesting, cannot reproduce.
Created attachment 158134 [details] New crash information added by DrKonqi plasmashell (5.27.4) using Qt 5.15.8 Not necessarily a screenshot, can also sometimes reproduce with download notifications from Firefox (p-b-i). I think this is related to the "proxy file" feature in notifications. -- Backtrace (Reduced): #4 0x00007f0519b24c5a in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:118 [...] #7 QObjectPrivate::get(QObject*) (o=<optimized out>) at kernel/qobject_p.h:355 #8 doActivate<false>(QObject*, int, void**) (sender=0x0, signal_index=3, argv=0x7ffc92c3bbb0) at kernel/qobject.cpp:3805 [...] #10 0x00007f051a40e0ee in QDrag::actionChanged(Qt::DropAction) (this=<optimized out>, _t1=<optimized out>, _t1@entry=Qt::MoveAction) at .moc/moc_qdrag.cpp:146 #11 0x00007f0519fbb1c5 in QPlatformDrag::updateAction(Qt::DropAction) (this=this@entry=0x560832634020, action=action@entry=Qt::MoveAction) at kernel/qplatformdrag.cpp:185
Git commit 1a893f95261378316143b932e6907cba8b5c4260 by Fushan Wen. Committed on 13/06/2023 at 00:52. Pushed by fusionfuture into branch 'master'. applets/notifications: remove its own drag helper With Qt 6.5 and afterwards, it's now possible to set "text/uri-list" in QML. Task: https://phabricator.kde.org/T12041 M +0 -2 applets/notifications/CMakeLists.txt D +0 -86 applets/notifications/draghelper.cpp D +0 -46 applets/notifications/draghelper.h M +0 -4 applets/notifications/notificationapplet.cpp M +39 -36 applets/notifications/package/contents/ui/DraggableFileArea.qml M +8 -6 applets/notifications/package/contents/ui/JobItem.qml M +29 -27 applets/notifications/package/contents/ui/ThumbnailStrip.qml https://invent.kde.org/plasma/plasma-workspace/-/commit/1a893f95261378316143b932e6907cba8b5c4260
Also related to bug 470925?
*** This bug has been marked as a duplicate of bug 470925 ***