Summary: | [Wayland] Apps crash on drag and drop | ||
---|---|---|---|
Product: | [Applications] dolphin | Reporter: | Mel <all> |
Component: | general | Assignee: | Dolphin Bug Assignee <dolphin-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | CC: | asturm, auxsvr, bdbonnaires, christoph.tapler, cyrond, dariolambert26, darkdefende, dr.freeman879, ferreira.seguro, gerbilsoft, julianspqr, justin.zobel, kde, kfm-devel, kocelfc, konstantinas.kausas, kosmas, mark, maxsuelc.s.swork, minecraftchest1+kdebugs, nate, nicolas.fella, postix, salvador.joseluis+kde, sam, sampingu02, sighunter, spamohspam |
Priority: | VHI | Keywords: | drkonqi, wayland |
Version: | 23.04.1 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=469750 | ||
Latest Commit: | https://invent.kde.org/qt/qt/qtwayland/-/commit/22daca49b807fefba58113a06b86df4274e49f62 | Version Fixed In: | Qt 6.6 or latest release of the KDE Qt patch collection |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
Quick and dirty fix for crash Updated patch New crash information added by DrKonqi |
Description
Mel
2023-06-12 04:54:02 UTC
Created attachment 159723 [details] New crash information added by DrKonqi dolphin (23.04.2) using Qt 5.15.10 recently, whenever I use dolphin for drag & drop, e. g. jpgs on firefox or flac files dropped on strawberry player, dolphin crashes with a segmentation fault. it happens every time. Dolphin 23.04.2 Not sure if bug 470925 is the same issue, but seems so -- Backtrace (Reduced): #4 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> (this=0x8) at /var/tmp/portage/dev-qt/qtgui-5.15.10/work/qtbase-everywhere-src-5.15.10/include/QtCore/../../src/corelib/tools/qscopedpointer.h:116 [...] #7 QDrag::dragCursor (this=0x0, action=action@entry=Qt::MoveAction) at /var/tmp/portage/dev-qt/qtgui-5.15.10/work/qtbase-everywhere-src-5.15.10/src/gui/kernel/qdrag.cpp:348 #8 0x00007fe4ecf3cabb in QBasicDrag::updateCursor (this=this@entry=0x55b0025a7740, action=Qt::MoveAction) at /var/tmp/portage/dev-qt/qtgui-5.15.10/work/qtbase-everywhere-src-5.15.10/src/gui/kernel/qsimpledrag.cpp:307 #9 0x00007fe4ea746bd3 in QtWaylandClient::QWaylandDrag::setResponse (this=this@entry=0x55b0025a7740, response=...) at /var/tmp/portage/dev-qt/qtwayland-5.15.10/work/qtwayland-everywhere-src-5.15.10/src/client/qwaylanddnd.cpp:121 #10 0x00007fe4ea743f09 in operator() (__closure=<optimized out>, accepted=<optimized out>, action=Qt::MoveAction) at /var/tmp/portage/dev-qt/qtwayland-5.15.10/work/qtwayland-everywhere-src-5.15.10/src/client/qwaylanddatadevice.cpp:140 I would just like to report that I have the same issue. Seems like this can also crash Plasma if you drag and drop things on the desktop. So I don't think this is directly Dolphin related. Created attachment 159896 [details]
Quick and dirty fix for crash
I created a quick and dirty workaround for the crash.
The issue is that during the DnD action m_drag becomes a null pointer.
I did a quick null pointer check and it seems to work. But the proper fix would probably be that the "update cursor shape" function doesn't get called when m_drag has been invalidated.
Note that the bug doesn't seem to be dolphin based as the issue is in qtgui. (And that is what my patch is for, not Dolphin). (In reply to Sebastian Parborg from comment #3) > Created attachment 159896 [details] > Quick and dirty fix for crash > > I created a quick and dirty workaround for the crash. > The issue is that during the DnD action m_drag becomes a null pointer. > I did a quick null pointer check and it seems to work. But the proper fix > would probably be that the "update cursor shape" function doesn't get called > when m_drag has been invalidated. thanks, this works for me, rebuilt qtgui-5.15.10 with the patch and it does not crash anymore, not when dropping anything on desktop and not on any app Created attachment 159922 [details]
Updated patch
After using the previous patch for a while it managed to crash in a new place.
Added an other null pointer check and it seems to work fine, but I'm not 100% sure are reproducing the new crash wasn't consistent.
A fix landed in QtWayland. Please re-open if you still get crashes after installing a version containing that fix. For Qt6: https://invent.kde.org/qt/qt/qtwayland/-/commit/22daca49b807fefba58113a06b86df4274e49f62 For Qt5: https://invent.kde.org/qt/qt/qtwayland/-/commit/d984aa55a90aece353457bdb4e8d4b68052a79d7 *** Bug 458625 has been marked as a duplicate of this bug. *** *** Bug 457116 has been marked as a duplicate of this bug. *** *** Bug 472701 has been marked as a duplicate of this bug. *** *** Bug 467467 has been marked as a duplicate of this bug. *** *** Bug 462645 has been marked as a duplicate of this bug. *** *** Bug 472313 has been marked as a duplicate of this bug. *** *** Bug 473201 has been marked as a duplicate of this bug. *** *** Bug 473170 has been marked as a duplicate of this bug. *** *** Bug 472298 has been marked as a duplicate of this bug. *** Created attachment 162167 [details]
New crash information added by DrKonqi
dolphin (23.08.1) using Qt 5.15.10
Dolphin crashes when dragging and dropping a file from Dolphin to Thunderbird.
-- Backtrace (Reduced):
#4 0x00007f033ebab0f1 in QDrag::dragCursor(Qt::DropAction) const () from /lib64/libQt5Gui.so.5
#5 0x00007f033ebadb02 in QBasicDrag::updateCursor(Qt::DropAction) () from /lib64/libQt5Gui.so.5
#6 0x00007f033c0e805a in QtPrivate::QFunctorSlotObject<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, QFlags<Qt::DropAction>, QtWaylandClient::QWaylandWindow*)::{lambda(bool, Qt::DropAction)#1}, 2, QtPrivate::List<bool, Qt::DropAction>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () from /lib64/libQt5WaylandClient.so.5
#7 0x00007f033e6e8481 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#8 0x00007f033c0ec4c9 in QtWaylandClient::QWaylandDataSource::dndResponseUpdated(bool, Qt::DropAction) () from /lib64/libQt5WaylandClient.so.5
*** Bug 480400 has been marked as a duplicate of this bug. *** *** Bug 456361 has been marked as a duplicate of this bug. *** *** Bug 460065 has been marked as a duplicate of this bug. *** *** Bug 470767 has been marked as a duplicate of this bug. *** *** Bug 476773 has been marked as a duplicate of this bug. *** *** Bug 470822 has been marked as a duplicate of this bug. *** *** Bug 466939 has been marked as a duplicate of this bug. *** *** Bug 469894 has been marked as a duplicate of this bug. *** *** Bug 396520 has been marked as a duplicate of this bug. *** *** Bug 482991 has been marked as a duplicate of this bug. *** *** Bug 484284 has been marked as a duplicate of this bug. *** |