Bug 399864

Summary: Folder view crashes when moving file from popup views into parent view
Product: [Plasma] plasmashell Reporter: Dubfiance <tdgalland>
Component: FolderAssignee: Eike Hein <hein>
Status: RESOLVED FIXED    
Severity: crash CC: bugseforuns, butirsky, matejm98mthw, maxmustermann1884, nate, notmart, null, plasma-bugs, qydwhotmail, rafael.linux.user, rantowich, resident.evil.mattew, tdgalland, vlad.konder000
Priority: NOR Keywords: wayland
Version: 5.14.2   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.24
Attachments: This is the video of how to produce this crash.

Description Dubfiance 2018-10-16 03:39:39 UTC
Created attachment 115670 [details]
This is the video of how to produce this crash.

If you use the Folder view widget, if you try to move a file from a folder popup to another folder in the folder widget the entire shell will crash and restart.

STEPS TO REPRODUCE
1. On the Folder Widget navigate to any folder pop-up
2. Grab a file and move it to another folder in the folder view widget
3. Observe crash

OBSERVED RESULT
Plasmashell restarts and fails to move file to folder

EXPECTED RESULT
moves file to another location using the folder view widget

SOFTWARE VERSIONS
(available in About System)
KDE Plasma Version: 5.14
KDE Frameworks Version: 5.51.0
Qt Version: 5.11.1

ADDITIONAL INFORMATION
Check attachment for video reenactment
Comment 1 Rafael Linux User 2018-10-16 09:29:57 UTC
I can't test your problem. I'm using the Spanish language version, and the unique folder related widget is "Folder view". This widget shows, by default, all Desktop files and folders and let me change the base folder to show. I try your steps with it, but when I drag a file over any other folder showed in the widget, does nothing (doesn't move or copy or ask nothing) and no crash.

However, it Plasma crashed when I was moving this widget to the panel (instead of double clicking to add it).

It's all I can say.
Comment 2 Matej Mrenica 2018-10-17 08:07:50 UTC
I did exactly what you described but couldn't reproduce the issue. Files move correctly and there is no crash.
Comment 3 Dubfiance 2018-10-18 21:26:15 UTC
Alright, I have a rather interesting update. This issue is only present on Xorg desktop sessions, if you try this on Wayland it works properly.
Comment 4 Christoph Feck 2018-10-30 20:18:17 UTC
Plasma 5.14.2 was released, and there are some fixes in Folder view that could affect this issue. Is this still reproducible after updating?
Comment 5 Dubfiance 2018-10-30 20:24:47 UTC
I can say that there are improvements. It does not crash anymore for moving a file from a folder to another folder.

However, it still crashes when you open a folder, get into another folder through the popup and when you click and drag any file it will still crash. This seems to only happen on Xorg desktop sessions if it helps.
Comment 6 Christoph Feck 2018-10-30 21:48:11 UTC
Thanks for the update; changing status.
Comment 7 Eike Hein 2018-11-19 08:12:49 UTC
Reproduced.
Comment 8 Patrick Silva 2019-02-24 00:20:30 UTC
This crash is still reproducible.

Operating System: Arch Linux 
KDE Plasma Version: 5.15.1
KDE Frameworks Version: 5.55.0
Qt Version: 5.12.1
Comment 9 Nate Graham 2020-01-23 16:52:14 UTC
*** Bug 413847 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2020-01-23 16:53:00 UTC
Thanks for the videos. However I cannot reproduce this issue on Plasma 5.17.5 or with git master aka the Plasma 5.18 beta. Can anyone else?
Comment 11 Nate Graham 2020-01-23 18:16:32 UTC
*** Bug 400273 has been marked as a duplicate of this bug. ***
Comment 12 Nate Graham 2020-01-23 18:16:35 UTC
*** Bug 402642 has been marked as a duplicate of this bug. ***
Comment 13 Patrick Silva 2020-01-23 19:31:31 UTC
Crash reproducible on Wayland. I start to drag the file and Plasma crashes when cursor reaches the Folder View widget.

On X11 Plasma does not crash. I start to drag the file and the DnD operation is immediately aborted when cursor reaches the Folder View widget.

Operating System: Arch Linux 
KDE Plasma Version: 5.17.90
KDE Frameworks Version: 5.66.0
Qt Version: 5.14.0
Comment 14 Patrick Silva 2020-01-23 20:45:01 UTC
when I wrote "...cursor reaches the Folder View widget"
I meant "..cursor reaches the 'root' of the Folder View widget".

On Neon unstable edition I can reproduce this crash on both X11 and Wayland sessions.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.18.80
KDE Frameworks Version: 5.67.0
Qt Version: 5.13.2
Comment 15 Nate Graham 2020-01-23 21:16:23 UTC
Huh. Thanks for testing.
Comment 16 Patrick Silva 2020-06-14 16:05:27 UTC
I can't reproduce this crash.
But on X11 I can't drop the file because DnD operation is aborted when the cursor reaches the parent view.
Comment 17 Patrick Silva 2020-06-14 16:25:06 UTC
(In reply to Patrick Silva from comment #16)
> I can't reproduce this crash.
> But on X11 I can't drop the file because DnD operation is aborted when the
> cursor reaches the parent view.

Operating System: Arch Linux 
KDE Plasma Version: 5.19.0
KDE Frameworks Version: 5.71.0
Qt Version: 5.15.0

reported as bug 422979
Comment 18 Patrick Silva 2020-06-14 17:06:26 UTC
(In reply to Patrick Silva from comment #16)
> I can't reproduce this crash.

Never mind. It's still crashing on Wayland. :(
Comment 19 Nate Graham 2021-08-29 21:31:25 UTC
I cannot reproduce on either X11 or Wayland. Can anyone?
Comment 20 Patrick Silva 2021-08-30 11:01:14 UTC
I can reproduce on neon unstable, only on Wayland.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.22.80
KDE Frameworks Version: 5.86.0
Qt Version: 5.15.3
Graphics Platform: Wayland

Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[New LWP 1110]
[New LWP 1296]
[New LWP 1298]
[New LWP 1297]
[New LWP 1266]
[New LWP 1212]
[New LWP 1211]
[New LWP 1210]
[New LWP 1209]
[New LWP 1309]
[New LWP 1308]
[New LWP 1307]
[New LWP 1300]
[New LWP 1299]
[New LWP 1304]
[New LWP 1355]
[New LWP 1190]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/plasmashell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI_raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x7fd71e8169c0 (LWP 1110))]
__preamble__

[Current thread is 1 (Thread 0x7fd71e8169c0 (LWP 1110))]

Thread 17 (Thread 0x7fd71deb4700 (LWP 1190)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd718005240, nfds=3, timeout=14446) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x7fd718005240, timeout=<optimized out>, context=0x7fd718000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd718000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd718000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd718000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd71deb3bb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=this@entry=0x7fd723640d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd7235bcf4b in QDBusConnectionManager::run() (this=0x7fd723640d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd723640d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 16 (Thread 0x7fd6cdede700 (LWP 1355)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557859f6fe04) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557859f6fdb0, cond=0x557859f6fdd8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557859f6fdd8, mutex=0x557859f6fdb0) at pthread_cond_wait.c:647
#3  0x00007fd722a4ff2b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x557859f6fdb0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x557859f1f4e8, mutex=mutex@entry=0x557859f1f4e0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fd7246a9b44 in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x557859f1f4d8) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68
#6  QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x557859f1f440) at scenegraph/qsgthreadedrenderloop.cpp:936
#7  0x00007fd7246a9fb9 in QSGRenderThread::run() (this=0x557859f1f440) at scenegraph/qsgthreadedrenderloop.cpp:1053
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x557859f1f440) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7fd6f9ea0700 (LWP 1304)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557852ab6934) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557852ab68e0, cond=0x557852ab6908) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557852ab6908, mutex=0x557852ab68e0) at pthread_cond_wait.c:647
#3  0x00007fd722a4ff2b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x557852ab68e0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd71802a9b8, mutex=mutex@entry=0x7fd71802a9b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fd7246a9b44 in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x7fd71802a9a8) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68
#6  QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x7fd71802a910) at scenegraph/qsgthreadedrenderloop.cpp:936
#7  0x00007fd7246a9fb9 in QSGRenderThread::run() (this=0x7fd71802a910) at scenegraph/qsgthreadedrenderloop.cpp:1053
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd71802a910) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7fd6faf22700 (LWP 1299)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fd6faf21b50, clockid=<optimized out>, expected=0, futex_word=0x7fd6f4003fa4) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7fd6faf21b50, clockid=<optimized out>, mutex=0x7fd6f4003f50, cond=0x7fd6f4003f78) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x7fd6f4003f78, mutex=0x7fd6f4003f50, abstime=0x7fd6faf21b50) at pthread_cond_wait.c:665
#3  0x00007fd722a4feb8 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fd6f4003f50, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fd6f4003f50) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd6f400c9f0, mutex=mutex@entry=0x557852d55628, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007fd722a4d3c1 in QThreadPoolThread::run() (this=0x7fd6f400c9e0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275
#7  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd6f400c9e0) at thread/qthread_unix.cpp:329
#8  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7fd6fa721700 (LWP 1300)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fd6fa720b50, clockid=<optimized out>, expected=0, futex_word=0x7fd6f400fc94) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7fd6fa720b50, clockid=<optimized out>, mutex=0x7fd6f400fc40, cond=0x7fd6f400fc68) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x7fd6f400fc68, mutex=0x7fd6f400fc40, abstime=0x7fd6fa720b50) at pthread_cond_wait.c:665
#3  0x00007fd722a4feb8 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fd6f400fc40, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fd6f400fc40) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd6f4006b90, mutex=mutex@entry=0x557852d55628, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007fd722a4d3c1 in QThreadPoolThread::run() (this=0x7fd6f4006b80) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275
#7  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd6f4006b80) at thread/qthread_unix.cpp:329
#8  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7fd6eeb20700 (LWP 1307)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd6dc004a80, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fd6dc004a80, timeout=<optimized out>, context=0x7fd6dc000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd6dc000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd6dc000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd6dc000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd6eeb1fbc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=this@entry=0x557855617950) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd6eef4c669 in QQuickXmlQueryEngine::run() (this=0x557855617950) at qqmlxmllistmodel.cpp:325
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x557855617950) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fd6ee31e700 (LWP 1308)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd6d0004c30, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fd6d0004c30, timeout=<optimized out>, context=0x7fd6d0000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd6d0000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd6d0000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd6d0000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd6ee31dbe0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x5578547b67b0) at thread/qthread_unix.cpp:329
#8  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fd6ecf07700 (LWP 1309)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd6c8006930, nfds=1, timeout=3499283) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fd6c8006930, timeout=<optimized out>, context=0x7fd6c8000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd6c8000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd6c8000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd6c8000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd6ecf06ba0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=this@entry=0x557855984c10) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd6ecfe707c in KCupsConnection::run() (this=0x557855984c10) at ./libkcups/KCupsConnection.cpp:289
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x557855984c10) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fd717fff700 (LWP 1209)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5578524047ec) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557852404798, cond=0x5578524047c0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x5578524047c0, mutex=0x557852404798) at pthread_cond_wait.c:647
#3  0x00007fd71c6cba4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fd71c6cb64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fd7177fe700 (LWP 1210)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5578524047ec) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557852404798, cond=0x5578524047c0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x5578524047c0, mutex=0x557852404798) at pthread_cond_wait.c:647
#3  0x00007fd71c6cba4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fd71c6cb64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fd716ffd700 (LWP 1211)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5578524047e8) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557852404798, cond=0x5578524047c0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x5578524047c0, mutex=0x557852404798) at pthread_cond_wait.c:647
#3  0x00007fd71c6cba4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fd71c6cb64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fd7167fc700 (LWP 1212)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5578524047ec) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557852404798, cond=0x5578524047c0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x5578524047c0, mutex=0x557852404798) at pthread_cond_wait.c:647
#3  0x00007fd71c6cba4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fd71c6cb64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fd707fff700 (LWP 1266)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd6fc004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fd6fc004e60, timeout=<optimized out>, context=0x7fd6fc000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd6fc000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd6fc000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd6fc000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd707ffebc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=this@entry=0x5578527df710) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd724259549 in QQmlThreadPrivate::run() (this=0x5578527df710) at qml/ftw/qqmlthread.cpp:155
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x5578527df710) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fd6fbf24700 (LWP 1297)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fd6fbf23b50, clockid=<optimized out>, expected=0, futex_word=0x7fd6f4036c14) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7fd6fbf23b50, clockid=<optimized out>, mutex=0x7fd6f4036bc0, cond=0x7fd6f4036be8) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x7fd6f4036be8, mutex=0x7fd6f4036bc0, abstime=0x7fd6fbf23b50) at pthread_cond_wait.c:665
#3  0x00007fd722a4feb8 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fd6f4036bc0, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fd6f4036bc0) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd6f400f720, mutex=mutex@entry=0x557852d55628, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007fd722a4d3c1 in QThreadPoolThread::run() (this=0x7fd6f400f710) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275
#7  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd6f400f710) at thread/qthread_unix.cpp:329
#8  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fd6fb723700 (LWP 1298)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fd6fb722b50, clockid=<optimized out>, expected=0, futex_word=0x7fd6f40068f4) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7fd6fb722b50, clockid=<optimized out>, mutex=0x7fd6f40068a0, cond=0x7fd6f40068c8) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x7fd6f40068c8, mutex=0x7fd6f40068a0, abstime=0x7fd6fb722b50) at pthread_cond_wait.c:665
#3  0x00007fd722a4feb8 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fd6f40068a0, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fd6f40068a0) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd6f400f570, mutex=mutex@entry=0x557852d55628, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007fd722a4d3c1 in QThreadPoolThread::run() (this=0x7fd6f400f560) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275
#7  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x7fd6f400f560) at thread/qthread_unix.cpp:329
#8  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fd704b68700 (LWP 1296)):
#0  0x00007fd7226bbaff in __GI___poll (fds=0x7fd6f40050e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd720f6b36e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fd6f40050e0, timeout=<optimized out>, context=0x7fd6f400fdd0) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fd6f400fdd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fd720f6b4a3 in g_main_context_iteration (context=0x7fd6f400fdd0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd6f400f860, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd704b67ba0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fd722a48c22 in QThread::exec() (this=this@entry=0x5578548d48b0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fd7245e43ba in QQuickPixmapReader::run() (this=0x5578548d48b0) at util/qquickpixmapcache.cpp:1024
#8  0x00007fd722a49dbc in QThreadPrivate::start(void*) (arg=0x5578548d48b0) at thread/qthread_unix.cpp:329
#9  0x00007fd72199d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fd7226c8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fd71e8169c0 (LWP 1110)):
[KCrash Handler]
#3  QMapData<Qt::DropAction, QPixmap>::findNode(Qt::DropAction const&) const (akey=<synthetic pointer>: <optimized out>, this=0x2611) at ../../include/QtCore/../../src/corelib/tools/qmap.h:850
#4  QMap<Qt::DropAction, QPixmap>::constFind(Qt::DropAction const&) const (this=0x55785902ff78, akey=<synthetic pointer>: <optimized out>) at ../../include/QtCore/../../src/corelib/tools/qmap.h:852
#5  QDrag::dragCursor(Qt::DropAction) const (this=0x55785cd70420, action=action@entry=Qt::IgnoreAction) at kernel/qdrag.cpp:349
#6  0x00007fd723054c1f in QBasicDrag::updateCursor(Qt::DropAction) (this=0x55785226a830, action=Qt::IgnoreAction) at kernel/qsimpledrag.cpp:307
#7  0x00007fd722c6778e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe33205da0, r=0x55785226fbc0, this=0x55785cc957b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false>(QObject*, int, void**) (sender=0x55785cd70220, signal_index=3, argv=0x7ffe33205da0) at kernel/qobject.cpp:3886
#9  0x00007fd722c60b57 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7fd720bac660 <QtWaylandClient::QWaylandDataSource::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe33205da0) at kernel/qobject.cpp:3946
#10 0x00007fd720af3ba6 in QtWaylandClient::QWaylandDataSource::targetChanged(QString const&) (this=<optimized out>, _t1=...) at .moc/moc_qwaylanddatasource_p.cpp:146
#11 0x00007fd720aef770 in QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*) (data=0x55785cd70230, object=<optimized out>, mime_type=0x557859d0ca8c "text/uri-list") at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:236
#12 0x00007fd720f13ff5 in ffi_call_unix64 () at ../src/x86/unix64.S:101
#13 0x00007fd720f1340a in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669
#14 0x00007fd7225553a8 in wl_closure_invoke (closure=0x557859d0c9b0, flags=1, target=<optimized out>, opcode=0, data=<optimized out>) at ../src/connection.c:1018
#15 0x00007fd722551c48 in dispatch_event (display=display@entry=0x55785226b6c0, queue=<optimized out>) at ../src/wayland-client.c:1445
#16 0x00007fd72255321c in dispatch_queue (queue=0x55785226b790, display=0x55785226b6c0) at ../src/wayland-client.c:1591
#17 wl_display_dispatch_queue_pending (display=0x55785226b6c0, queue=0x55785226b790) at ../src/wayland-client.c:1833
#18 0x00007fd722553280 in wl_display_dispatch_pending (display=<optimized out>) at ../src/wayland-client.c:1896
#19 0x00007fd720ac0235 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=0x557852267b00) at qwaylanddisplay.cpp:222
#20 0x00007fd722c677c0 in doActivate<false>(QObject*, int, void**) (sender=0x557852282460, signal_index=4, argv=0x7ffe33206290) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#21 0x00007fd722c60b57 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x557852282460, m=m@entry=0x7fd722ecc1c0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#22 0x00007fd722c2d307 in QAbstractEventDispatcher::awake() (this=this@entry=0x557852282460) at .moc/moc_qabstracteventdispatcher.cpp:149
#23 0x00007fd722c8affc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557852282460, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#24 0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x55785cc966f0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#25 0x00007fd723052bc7 in QBasicDrag::drag(QDrag*) (this=0x55785226a830, o=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x00007fd72305023d in QDragManager::drag(QDrag*) (this=0x557859ef6cf0, o=0x55785cd70420) at /usr/include/c++/9/bits/atomic_base.h:413
#27 0x00007fd723050597 in QDrag::exec(QFlags<Qt::DropAction>, Qt::DropAction) (this=<optimized out>, supportedActions=..., defaultDropAction=<optimized out>) at /usr/include/c++/9/bits/atomic_base.h:413
#28 0x00007fd7042cce84 in  () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/desktopcontainment/folder/libfolderplugin.so
#29 0x00007fd7042bdbb4 in  () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/desktopcontainment/folder/libfolderplugin.so
#30 0x00007fd722c5e309 in QObject::event(QEvent*) (this=0x5578587269e0, e=0x55785902f5f0) at kernel/qobject.cpp:1314
#31 0x00007fd72393fdc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x557852265410, receiver=receiver@entry=0x5578587269e0, e=e@entry=0x55785902f5f0) at kernel/qapplication.cpp:3632
#32 0x00007fd723948bb8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffe33206c80, receiver=0x5578587269e0, e=0x55785902f5f0) at kernel/qapplication.cpp:3156
#33 0x00007fd722c3076a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5578587269e0, event=0x55785902f5f0) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#34 0x00007fd722c33071 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55785223eef0) at kernel/qcoreapplication.cpp:1821
#35 0x00007fd722c8b967 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x557852282330) at kernel/qeventdispatcher_glib.cpp:277
#36 0x00007fd720f6b17d in g_main_dispatch (context=0x557852283f60) at ../../../glib/gmain.c:3309
#37 g_main_context_dispatch (context=context@entry=0x557852283f60) at ../../../glib/gmain.c:3974
#38 0x00007fd720f6b400 in g_main_context_iterate (context=context@entry=0x557852283f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#39 0x00007fd720f6b4a3 in g_main_context_iteration (context=0x557852283f60, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#40 0x00007fd722c8afc2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557852282460, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#41 0x00007fd722c2f26b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe33206b30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#42 0x00007fd722c37424 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#43 0x0000557851acce08 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:242
Comment 21 Nate Graham 2021-08-31 21:01:41 UTC
Huh, Cannot reproduce. It works for me.
Comment 22 Andrey 2021-09-10 19:34:43 UTC
Can reproduce at least on Wayland,
but it seem only happens if trying to drag from intermediate folder to a neighbor folder 2 levels up, as in the video:

Folder1        Folder2
(Drag here)        \
               Intermediate Folder
                      |
                     File to drag
Comment 23 Andrey 2021-09-10 19:58:28 UTC
For X just can't drop it such way because the held file icon disappears as soon as it matched with the target folder.
Comment 24 Marco Martin 2021-11-03 15:07:34 UTC
doesn't seem to be reproducible here on wayland master
Comment 25 Andrey 2021-11-03 15:37:06 UTC
(In reply to Marco Martin from comment #24)
> doesn't seem to be reproducible here on wayland master

It crashed in certain circumstances, see my posts above.
Comment 26 Marco Martin 2021-11-16 11:14:36 UTC
(In reply to Andrey from comment #25)
> (In reply to Marco Martin from comment #24)
> > doesn't seem to be reproducible here on wayland master
> 
> It crashed in certain circumstances, see my posts above.

yep, with that exact steps i can reproduce as well
Comment 27 Marco Martin 2021-11-16 11:18:52 UTC
pasting here my bt as well
QMapNode<Qt::DropAction, QPixmap>::lowerBound (akey=<optimized out>, 
    this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qmap.h:66
66      ../../include/QtCore/../../src/corelib/tools/qmap.h: No such file or directory.
(gdb) bt
#0  QMapNode<Qt::DropAction, QPixmap>::lowerBound(Qt::DropAction const&)
    (akey=<optimized out>, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:66
#1  QMapData<Qt::DropAction, QPixmap>::findNode(Qt::DropAction const&) const
    (akey=<synthetic pointer>: Qt::CopyAction, this=0x555558672d20)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:288
#2  QMap<Qt::DropAction, QPixmap>::constFind(Qt::DropAction const&) const
    (this=<optimized out>, akey=<synthetic pointer>: Qt::CopyAction)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:852
#3  QDrag::dragCursor(Qt::DropAction) const
    (this=<optimized out>, action=action@entry=Qt::CopyAction) at kernel/qdrag.cpp:349
#4  0x00007ffff5c1ac0f in QBasicDrag::updateCursor(Qt::DropAction)
    (this=0x555555682300, action=Qt::CopyAction) at kernel/qsimpledrag.cpp:307
#5  0x00007ffff582bdce in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffffffcee0, r=0x55555567edd0, this=0x55555867eed0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false>(QObject*, int, void**)
    (sender=0x555558675680, signal_index=3, argv=0x7fffffffcee0)
    at kernel/qobject.cpp:3886
#7  0x00007ffff5825197 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7ffff3256660 <QtWaylandClient::QWaylandDataSource::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffcee0) at kernel/qobject.cpp:3946
#8  0x00007ffff319dc76 in QtWaylandClient::QWaylandDataSource::targetChanged(QString con--Type <RET> for more, q to quit, c to continue without paging--
st&) (this=<optimized out>, _t1=...) at .moc/moc_qwaylanddatasource_p.cpp:146
#9  0x00007ffff3199840 in QtWayland::wl_data_source::handle_target(void*, wl_data_source*, char const*)
    (data=0x555558675690, object=<optimized out>, mime_type=0x555558378f1c "text/uri-list") at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:236
#10 0x00007ffff4f7eff5 in  () at /lib/x86_64-linux-gnu/libffi.so.7
#11 0x00007ffff4f7e40a in  () at /lib/x86_64-linux-gnu/libffi.so.7
#12 0x00007ffff7c703a8 in  () at /lib/x86_64-linux-gnu/libwayland-client.so.0
#13 0x00007ffff7c6cc48 in  () at /lib/x86_64-linux-gnu/libwayland-client.so.0
#14 0x00007ffff7c6e21c in wl_display_dispatch_queue_pending ()
    at /lib/x86_64-linux-gnu/libwayland-client.so.0
#15 0x00007ffff316a335 in QtWaylandClient::QWaylandDisplay::flushRequests()
    (this=0x555555683160) at qwaylanddisplay.cpp:222
#16 0x00007ffff582be00 in doActivate<false>(QObject*, int, void**)
    (sender=0x5555556f8c40, signal_index=4, argv=0x7fffffffd3d0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#17 0x00007ffff5825197 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x5555556f8c40, m=m@entry=0x7ffff5a901c0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#18 0x00007ffff57f1947 in QAbstractEventDispatcher::awake()
    (this=this@entry=0x5555556f8c40) at .moc/moc_qabstracteventdispatcher.cpp:149
#19 0x00007ffff584f63c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555556f8c40, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#20 0x00007ffff57f38ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x5555586762c0, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#21 0x00007ffff5c18bb7 in QBasicDrag::drag(QDrag*)
    (this=0x555555682300, o=<optimized out>)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#22 0x00007ffff5c1622d in QDragManager::drag(QDrag*)
    (this=0x555558672780, o=0x555558671a80)
--Type <RET> for more, q to quit, c to continue without paging--
    at /usr/include/c++/9/bits/atomic_base.h:413
#23 0x00007ffff5c16587 in QDrag::exec(QFlags<Qt::DropAction>, Qt::DropAction)
    (this=<optimized out>, supportedActions=..., defaultDropAction=<optimized out>)
    at /usr/include/c++/9/bits/atomic_base.h:413
#24 0x00007fffc9108555 in FolderModel::dragSelectedInternal(int, int) (this=
    0x5555584aed70, x=75, y=119)
    at /home/diau/git/kf5/kde/workspace/plasma-desktop/containments/desktop/plugins/folder/foldermodel.cpp:997
#25 0x00007fffc90f6a75 in FolderModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
    (_o=0x5555584aed70, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x55555866fa58)
    at /home/diau/git/kf5/build/kde/workspace/plasma-desktop/containments/desktop/plugins/folder/folderplugin_autogen/EWIEGA46WW/moc_foldermodel.cpp:603
#26 0x00007ffff5822949 in QObject::event(QEvent*)
    (this=0x5555584aed70, e=0x55555866fa10) at kernel/qobject.cpp:1314
#27 0x00007ffff65a9dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=this@entry=0x5555556787a0, receiver=receiver@entry=0x5555584aed70, e=e@entry=0x55555866fa10) at kernel/qapplication.cpp:3632
#28 0x00007ffff65b2bb8 in QApplication::notify(QObject*, QEvent*)
    (this=0x7fffffffdf10, receiver=0x5555584aed70, e=0x55555866fa10)
    at kernel/qapplication.cpp:3156
#29 0x00007ffff57f4daa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x5555584aed70, event=0x55555866fa10)
    at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#30 0x00007ffff57f76b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x555555651ef0)
    at kernel/qcoreapplication.cpp:1821
#31 0x00007ffff584ffa7 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer)
    (s=0x5555556e4380) at kernel/qeventdispatcher_glib.cpp:277
#32 0x00007ffff36a917d in g_main_context_dispatch ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff36a9400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
Comment 28 Rafael Linux User 2021-11-16 11:58:52 UTC
Did you tried with another user? (root or a new one)
Comment 29 Bug Janitor Service 2021-11-16 17:18:05 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/696
Comment 30 Fushan Wen 2021-11-25 02:02:55 UTC
Git commit c193fd4c3a6135dfccd5696c3fcd84a12b1af8fa by Fushan Wen, on behalf of Marco Martin.
Committed on 25/11/2021 at 02:02.
Pushed by fusionfuture into branch 'master'.

never delete any dialog if there is a drag in progress anywhere

on Wayland deleting either the source or the target of a qdrag
causes crashes due to the nested event loops.
keep a global track if any item started a drag anywhere, if so
don't delete any dialog but queue it for destruction

M  +1    -0    containments/desktop/package/contents/ui/FolderView.qml
M  +3    -3    containments/desktop/package/contents/ui/FolderViewDialog.qml
M  +64   -11   containments/desktop/plugins/folder/foldermodel.cpp
M  +25   -1    containments/desktop/plugins/folder/foldermodel.h

https://invent.kde.org/plasma/plasma-desktop/commit/c193fd4c3a6135dfccd5696c3fcd84a12b1af8fa