SUMMARY As soon as my drag exits the window, kwin_wayland crashes for me: #0 0x00007fb6b94e5ce5 in raise () at /usr/lib/libc.so.6 #1 0x00007fb6b94cf92c in abort () at /usr/lib/libc.so.6 #2 0x00007fb6b9ba3be3 in qt_message_fatal (context=..., message=<synthetic pointer>...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914 #3 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffec3dfae60, msg=msg@entry=0x7fb6b9e98ea0 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893 #4 0x00007fb6b9ba2fc5 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.h:90 #5 0x000055da99bdc807 in KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0::operator()(unsigned int) const (this=0x55da9c0b9bb0, eventTime=6861148) at /home/apol/devel/frameworks/kwin/xwl/drag_x.cpp:78 #6 0x000055da99bdc6f0 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<unsigned int>, void, KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0>::call(KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0&, void**) (f=..., arg=0x7ffec3dfb0b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #7 0x000055da99bdc6b1 in QtPrivate::Functor<KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0, 1>::call<QtPrivate::List<unsigned int>, void>(KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0&, void*, void**) (f=..., arg=0x7ffec3dfb0b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #8 0x000055da99bdc65c in QtPrivate::QFunctorSlotObject<KWin::Xwl::XToWlDrag::XToWlDrag(KWin::Xwl::X11Source*)::$_0, 1, QtPrivate::List<unsigned int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55da9c0b9ba0, r=0x55da9c01f160, a=0x7ffec3dfb0b0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:439 #9 0x00007fb6b9deb65e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffec3dfb0b0, r=0x55da9c01f160, this=0x55da9c0b9ba0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394 #10 doActivate<false>(QObject*, int, void**) (sender=0x55da9b5350e0, signal_index=3, argv=0x7ffec3dfb0b0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3858 #11 0x000055da99bbe472 in KWin::Xwl::Selection::transferFinished(unsigned int) (this=0x55da9b5350e0, _t1=6861148) at kwin_wayland_autogen/DC6ZQWILS5/moc_selection.cpp:134 #12 0x000055da99be6262 in KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0::operator()() const (this=0x55da9c02f3d0) at /home/apol/devel/frameworks/kwin/xwl/selection.cpp:303 #13 0x000055da99be61f6 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0>::call(KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0&, void**) (f=..., arg=0x7ffec3dfb260) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #14 0x000055da99be61c1 in QtPrivate::Functor<KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0, 0>::call<QtPrivate::List<>, void>(KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0&, void*, void**) (f=..., arg=0x7ffec3dfb260) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #15 0x000055da99be616c in QtPrivate::QFunctorSlotObject<KWin::Xwl::Selection::startTransferToWayland(unsigned int, int)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55da9c02f3c0, r=0x55da9b5350e0, a=0x7ffec3dfb260, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:439 #16 0x00007fb6b9deb65e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffec3dfb260, r=0x55da9b5350e0, this=0x55da9c02f3c0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394 #17 doActivate<false>(QObject*, int, void**) (sender=0x55da9bf2f150, signal_index=3, argv=0x7ffec3dfb260) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3858 #18 0x000055da99bbeed5 in KWin::Xwl::Transfer::finished() (this=0x55da9bf2f150) at kwin_wayland_autogen/DC6ZQWILS5/moc_transfer.cpp:131 #19 0x000055da99beddee in KWin::Xwl::Transfer::endTransfer() (this=0x55da9bf2f150) at /home/apol/devel/frameworks/kwin/xwl/transfer.cpp:87 #20 0x000055da99bef554 in KWin::Xwl::TransferXtoWl::dataSourceWrite() (this=0x55da9bf2f150) at /home/apol/devel/frameworks/kwin/xwl/transfer.cpp:577 #21 0x000055da99bef2ac in KWin::Xwl::TransferXtoWl::startTransfer() (this=0x55da9bf2f150) at /home/apol/devel/frameworks/kwin/xwl/transfer.cpp:392 #22 0x000055da99bef0ae in KWin::Xwl::TransferXtoWl::handleSelectionNotify(xcb_selection_notify_event_t*) (this=0x55da9bf2f150, event=0x55da9bfcf460) at /home/apol/devel/frameworks/kwin/xwl/transfer.cpp:362 #23 0x000055da99be5158 in KWin::Xwl::Selection::handleSelectionNotify(xcb_selection_notify_event_t*) (this=0x55da9b5350e0, event=0x55da9bfcf460) at /home/apol/devel/frameworks/kwin/xwl/selection.cpp:274 #24 0x000055da99be5008 in KWin::Xwl::Selection::filterEvent(xcb_generic_event_t*) (this=0x55da9b5350e0, event=0x55da9bfcf460) at /home/apol/devel/frameworks/kwin/xwl/selection.cpp:130 #25 0x000055da99bd1cf2 in KWin::Xwl::DataBridge::filterEvent(xcb_generic_event_t*) (this=0x55da9b15f3a0, event=0x55da9bfcf460) at /home/apol/devel/frameworks/kwin/xwl/databridge.cpp:100 #26 0x000055da99bf3aa5 in KWin::Xwl::Xwayland::continueStartupWithX()::$_7::operator()() const (this=0x7fb69000a6c0) at /home/apol/devel/frameworks/kwin/xwl/xwayland.cpp:224 #27 0x000055da99bf3a16 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::Xwl::Xwayland::continueStartupWithX()::$_7>::call(KWin::Xwl::Xwayland::continueStartupWithX()::$_7&, void**) (f=..., arg=0x7ffec3dfb830) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #28 0x000055da99bf39e1 in QtPrivate::Functor<KWin::Xwl::Xwayland::continueStartupWithX()::$_7, 0>::call<QtPrivate::List<>, void>(KWin::Xwl::Xwayland::continueStartupWithX()::$_7&, void*, void**) (f=..., arg=0x7ffec3dfb830) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #29 0x000055da99bf398c in QtPrivate::QFunctorSlotObject<KWin::Xwl::Xwayland::continueStartupWithX()::$_7, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x7fb69000a6b0, r=0x55da9b155a30, a=0x7ffec3dfb830, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:439 #30 0x00007fb6b9deb65e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffec3dfb830, r=0x55da9b155a30, this=0x7fb69000a6b0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394 #31 doActivate<false>(QObject*, int, void**) (sender=0x55da9a8d6f90, signal_index=3, argv=0x7ffec3dfb830) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3858 #32 0x00007fb6b9de5d5f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55da9a8d6f90, m=m@entry=0x7fb6ba081b60 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffec3dfb830) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3918 #33 0x00007fb6b9deede1 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55da9a8d6f90, _t1=<optimized out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:141 #34 0x00007fb6b9def121 in QSocketNotifier::event(QEvent*) (this=0x55da9a8d6f90, e=0x7ffec3dfbaf0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:271 #35 0x00007fb6ba8add1f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55da9a6dd820, receiver=receiver@entry=0x55da9a8d6f90, e=e@entry=0x7ffec3dfbaf0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3670 #36 0x00007fb6ba8b6b60 in QApplication::notify(QObject*, QEvent*) (this=0x7ffec3dfc440, receiver=0x55da9a8d6f90, e=0x7ffec3dfbaf0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3416 #37 0x00007fb6b9db683a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55da9a8d6f90, event=0x7ffec3dfbaf0) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../../../../devel/frameworks/qt5/qtbase/src/corelib/thread/qthread_p.h:325 #38 0x00007fb6b9e0aa2b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x55da9a6e3cf0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304 #39 0x00007fb6b9e0ae7b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:511 #40 0x00007fb6b4eb6e4d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63 #41 0x00007fb6b9db542b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffec3dfbc80, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:141 #42 0x00007fb6b9dbd340 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121 #43 0x000055da99bc5774 in main(int, char**) (argc=4, argv=0x7ffec3dfc668) at /home/apol/devel/frameworks/kwin/main_wayland.cpp:676
A drag of what from what? I can't reproduce, but I have seen this report before
I think it was a URL/link. It crashes when it goes over the plasmashell. It might have been from an X11 client.
possible duplicate of bug 398440
*** This bug has been marked as a duplicate of bug 416499 ***
Git commit 26ce4869a09e0061061c3f1e2cf2333a4ab1eb02 by David Edmundson. Committed on 06/04/2020 at 22:22. Pushed by davidedmundson into branch 'master'. [xwl] Fix crash if same data is requested twice Summary: m_dataRequests is a list of transfers for a given selection. It exists primarily as a ref counting mechanism that matches up transfers with selections. If the same data is requested twice we would insert two items into the list with matching timestamps for the original selection. This then confuses the callback handling. Test Plan: kwin_wayland + chromium drag and drop a URL onto desktopview. kwin used to crash here Now a context menu now appears and I can add a link Reviewers: #kwin Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D28630 M +1 -2 xwl/drag_x.cpp https://commits.kde.org/kwin/26ce4869a09e0061061c3f1e2cf2333a4ab1eb02