Bug 508059 - Plasma crashes in QWaylandMimeHelper::getByteArray() after dragging a file in the Folder View widget and then dropping it onto parent folder
Summary: Plasma crashes in QWaylandMimeHelper::getByteArray() after dragging a file in...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Desktop icons & Folder View widget (other bugs)
Version First Reported In: 6.4.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: wayland-only
Depends on:
Blocks:
 
Reported: 2025-08-09 18:13 UTC by Patrick Silva
Modified: 2025-08-11 20:34 UTC (History)
3 users (show)

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


Attachments
screen recording (1.60 MB, video/webm)
2025-08-09 18:13 UTC, Patrick Silva
Details
long backtrace (265.69 KB, text/plain)
2025-08-09 18:14 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2025-08-09 18:13:47 UTC
Created attachment 183913 [details]
screen recording

SUMMARY
Plasma crashes consistently on my system after the steps seen in the attached screen recording.

EXPECTED RESULT
no crash

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.1
Graphics Platform: Wayland
Comment 1 Patrick Silva 2025-08-09 18:14:18 UTC
Created attachment 183914 [details]
long backtrace
Comment 2 TraceyC 2025-08-11 19:55:22 UTC
Searchable backtrace


Thread 1 (Thread 0x7f0883255a40 (LWP 11559)):
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f0888898a13 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007f088883e410 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f088bbc8e97 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.17.0/src/kcrash.cpp:605
#4  0x00007f088883e540 in <signal handler called> () at /usr/lib/libc.so.6
#5  QMimeData::hasImage (this=this@entry=0x5632e36a5b90) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qarraydatapointer.h:452
#6  0x00007f088a16c191 in QWaylandMimeHelper::getByteArray (mimeData=0x5632e36a5b90, mimeType=...) at /usr/src/debug/qt6-wayland/qtwayland/src/shared/qwaylandmimehelper.cpp:18
#7  0x00007f088a1c69d7 in QtWaylandClient::QWaylandDataSource::data_source_send (this=<optimized out>, mime_type=<optimized out>, fd=57) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddatasource.cpp:46
#8  0x00007f088a1b2716 in QtWayland::wl_data_source::handle_send (data=0x5632e7262550, object=<optimized out>, mime_type=0x7f087801a57c "text/uri-list", fd=57) at /usr/src/debug/qt6-wayland/build/src/client/qwayland-wayland.cpp:756
#9  0x00007f088a7a9ac6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#10 0x00007f088a7a676b in ffi_call_int (cif=cif@entry=0x7ffca00a6480, fn=fn@entry=0x7f088a1b26b0 <QtWayland::wl_data_source::handle_send(void*, wl_data_source*, char const*, int)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7ffca00a6550, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676
#11 0x00007f088a7a906e in ffi_call (cif=cif@entry=0x7ffca00a6480, fn=0x7f088a1b26b0 <QtWayland::wl_data_source::handle_send(void*, wl_data_source*, char const*, int)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffca00a6550) at ../src/x86/ffi64.c:713
#12 0x00007f088bc4148d in wl_closure_invoke (closure=closure@entry=0x7f087801a4a0, target=<optimized out>, target@entry=0x5632e69fd100, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../wayland-1.24.0/src/connection.c:1241
#13 0x00007f088bc422e9 in dispatch_event (display=display@entry=0x5632e0877e10, queue=queue@entry=0x5632e0877f08) at ../wayland-1.24.0/src/wayland-client.c:1707
#14 0x00007f088bc426f3 in dispatch_queue (display=0x5632e0877e10, queue=0x5632e0877f08) at ../wayland-1.24.0/src/wayland-client.c:1853
#15 wl_display_dispatch_queue_pending (display=0x5632e0877e10, queue=0x5632e0877f08) at ../wayland-1.24.0/src/wayland-client.c:2190
#16 0x00007f088a16e266 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:228
#17 0x00007f08891c0e34 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
#18 0x00007f088b301c70 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5632e0877be0, e=0x7f087401fac0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303
#19 0x00007f0889168118 in QCoreApplication::notifyInternal2 (receiver=0x5632e0877be0, event=event@entry=0x7f087401fac0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#20 0x00007f08891684fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7f087401fac0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5632e086cec0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879
#22 0x00007f088943fcf8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1733
#23 postEventSourceDispatch (s=0x5632e08752e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#24 0x00007f0887b7587d in g_main_dispatch (context=0x7f087c000f70) at ../glib/glib/gmain.c:3398
#25 0x00007f0887b76cd7 in g_main_context_dispatch_unlocked (context=0x7f087c000f70) at ../glib/glib/gmain.c:4249
#26 g_main_context_iterate_unlocked (context=context@entry=0x7f087c000f70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314
#27 0x00007f0887b76ee5 in g_main_context_iteration (context=0x7f087c000f70, may_block=1) at ../glib/glib/gmain.c:4379
#28 0x00007f088943c5e2 in QEventDispatcherGlib::processEvents (this=0x5632e0875a90, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#29 0x00007f08891744b6 in QEventLoop::processEvents (this=0x5632e3c38df0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#30 QEventLoop::exec (this=this@entry=0x5632e3c38df0, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#31 0x00007f0889e0f73b in QBasicDrag::drag (this=0x5632e096abf0, o=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qsimpledrag.cpp:176
#32 0x00007f0889e10990 in QDragManager::drag (this=0x7f087c064190, o=o@entry=0x5632e340ab40) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qdnd.cpp:81
#33 0x00007f0889e10b8c in QDrag::exec (this=<optimized out>, supportedActions=..., defaultDropAction=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qdrag.cpp:248
#34 QDrag::exec (this=this@entry=0x5632e340ab40, supportedActions=...) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qdrag.cpp:203
#35 0x00007f08300cdfcc in FolderModel::dragSelectedInternal (this=0x5632ea7b72a0, x=<optimized out>, y=<optimized out>) at /usr/src/debug/plasma-desktop/plasma-desktop-6.4.4/containments/desktop/plugins/folder/foldermodel.cpp:1153
#36 0x00007f08891c0e34 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
#37 0x00007f088b301c70 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5632ea7b72a0, e=0x7f08740163c0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303
#38 0x00007f0889168118 in QCoreApplication::notifyInternal2 (receiver=0x5632ea7b72a0, event=event@entry=0x7f08740163c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#39 0x00007f08891684fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7f08740163c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#40 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5632e086cec0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879
#41 0x00007f088943fcf8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1733
#42 postEventSourceDispatch (s=0x5632e08752e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#43 0x00007f0887b7587d in g_main_dispatch (context=0x7f087c000f70) at ../glib/glib/gmain.c:3398
#44 0x00007f0887b76cd7 in g_main_context_dispatch_unlocked (context=0x7f087c000f70) at ../glib/glib/gmain.c:4249
#45 g_main_context_iterate_unlocked (context=context@entry=0x7f087c000f70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314
#46 0x00007f0887b76ee5 in g_main_context_iteration (context=0x7f087c000f70, may_block=1) at ../glib/glib/gmain.c:4379
#47 0x00007f088943c5e2 in QEventDispatcherGlib::processEvents (this=0x5632e0875a90, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#48 0x00007f08891744b6 in QEventLoop::processEvents (this=0x7ffca00a7250, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#49 QEventLoop::exec (this=0x7ffca00a7250, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#50 0x00007f088916c7c1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1449
#51 0x00007f088b2fc66a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2570
#52 0x00005632a3f113f1 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.4.4/shell/main.cpp:188
Comment 3 Nate Graham 2025-08-11 20:19:40 UTC
Interesting. I can't reproduce the issue when I mimic what you're doing in the screencast with a text file or a PNG image. From the backtrace, it looks like it's related to the file type somehow.
Comment 4 TraceyC 2025-08-11 20:22:12 UTC
Steps from the video

1. Have a folder widget on the desktop for the Desktop Folder
2. Have multiple files and folders on the desktop, at least one folder that's a link to another folder, at least one folder that has a subfolder with files
3. Open one non-linked folder that has a subfolder, open that subfolder
4. Drag a file from that subfolder into its parent folder within the widget ui

plasmashell crashes

I'm not able to reproduce this crash in git-master using these steps
KF 6.18.0
Qt 6.9.1
Comment 5 TraceyC 2025-08-11 20:34:21 UTC
This backtrace looks very similar, but not identical to bug 499654, which starts and ends in the same code paths