Bug 431565

Summary: KDE Plasma crashing when dragging a PDF from Dolphin to Thunderbird's Task Manager item
Product: [Plasma] plasmashell Reporter: remcoluit <rl>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: nate
Priority: NOR    
Version: 5.20.5   
Target Milestone: 1.0   
Platform: Slackware   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Screen recording
KDE drag and crash
backtrace

Description remcoluit 2021-01-13 21:17:07 UTC
SUMMARY
When dragging for example a pdf from Dolphin to Thunderbird message in the Task Panel, KDE crashes and restarts itself. 


STEPS TO REPRODUCE
1. Open Thunderbird and new mail message
2. Open Dolphin and drag a file to the new mail message in the task bar

OBSERVED RESULT
KDE crashes and restarts


EXPECTED RESULT
The file can be attached to the mail message


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Slackware-current (updated 11-01-2021) 
(available in About System)
KDE Plasma Version: 5.20.5
KDE Frameworks Version: 5.78.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Tested on two installs from current both installed last week, so reasonably clean and different hardware. One completely restarts KDE, the other crashes and task bar disappers. The following KCrash report was generated:
Application: Plasma (plasmashell), signal: Segmentation fault

[KCrash Handler]
#4 0x0000000000000000 in ()
#5 0x00007f1c3c8a0690 in () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#6 0x00007f1c3c89fd40 in () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#7 0x00007f1c3c89b28d in () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#8 0x00007f1c55a34a19 in () at /usr/lib64/libQt5Qml.so.5
#9 0x00007f1c55a521b4 in () at /usr/lib64/libQt5Qml.so.5
#10 0x00007f1c55a56597 in () at /usr/lib64/libQt5Qml.so.5
#11 0x00007f1c559f5cbd in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/libQt5Qml.so.5
#12 0x00007f1c55b6024d in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () at /usr/lib64/libQt5Qml.so.5
#13 0x00007f1c55b1730b in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/libQt5Qml.so.5
#14 0x00007f1c55b177b8 in () at /usr/lib64/libQt5Qml.so.5
#15 0x00007f1c55b44fed in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib64/libQt5Qml.so.5
#16 0x00007f1c540af3bf in () at /usr/lib64/libQt5Core.so.5
#17 0x00007f1c3c89ad2f in () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#18 0x00007f1c3c89fe8b in () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#19 0x00007f1c560c66e8 in QQuickItem::event(QEvent*) () at /usr/lib64/libQt5Quick.so.5
#20 0x00007f1c54d6e26f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#21 0x00007f1c5407b34a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#22 0x00007f1c560e38a1 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#23 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#24 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#25 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#26 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#27 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#28 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#29 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#30 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#31 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#32 0x00007f1c560e3652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#33 0x00007f1c560e3f37 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QEvent*) () at /usr/lib64/libQt5Quick.so.5
#34 0x00007f1c560e48a2 in QQuickWindow::event(QEvent*) () at /usr/lib64/libQt5Quick.so.5
#35 0x00007f1c54d6e26f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#36 0x00007f1c5407b34a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#37 0x00007f1c5407db01 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#38 0x00007f1c540cfb13 in () at /usr/lib64/libQt5Core.so.5
#39 0x00007f1c4f7b25fb in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#40 0x00007f1c4f7b2878 in () at /usr/lib64/libglib-2.0.so.0
#41 0x00007f1c4f7b291f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#42 0x00007f1c540cf1ff in QEventDispatcherGlib:rocessEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#43 0x00007f1c54079e8b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#44 0x00007f1c54081aac in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#45 0x00000000004213f1 in ()
#46 0x00007f1c538cbe6b in __libc_start_main () at /lib64/libc.so.6
#47 0x00000000004215ba in ()
[Inferior 1 (process 1750) detached]
Comment 1 Nate Graham 2021-01-14 21:00:08 UTC
Cannot reproduce with current git master. Dragging a PDF to Thunderbird's Task Manager entry attaches the file to a new message, rather than crashing plasma.
Comment 2 remcoluit 2021-01-14 21:56:47 UTC
(In reply to Nate Graham from comment #1)
> Cannot reproduce with current git master. Dragging a PDF to Thunderbird's
> Task Manager entry attaches the file to a new message, rather than crashing
> plasma.

True, now open a new mail message first, then also open another window (Firefox for example) so the new message is only accessible through the task manager because it is behind Firefox (in the task manager/bar is the main window and new message window, small green plus-symbol) then it crashes when hovering over the thunderbird icon in the task manager/bar when it opens the small window examples (which are not showing the content of the windows, but that is a minor for me).
Comment 3 Nate Graham 2021-01-15 15:45:59 UTC
Created attachment 134898 [details]
Screen recording

That seems to work for me too. I'm attaching a screen recording of what I'm doing. Does this match what you're doing?
Comment 4 remcoluit 2021-01-15 17:17:49 UTC
(In reply to Nate Graham from comment #3)
> Created attachment 134898 [details]
> Screen recording
> 
> That seems to work for me too. I'm attaching a screen recording of what I'm
> doing. Does this match what you're doing?

That is exactly what i am doing, at second 3 when selecting the "Write: (no subject) - Thunderbird" it crashes. Are you using Slackware-Current? 
I have it on two different hardware laptops (one older ThinkPad X1 and one very new IdeaPad 14). 
Perhaps i'll just need to wait on an updated KDE version in current. It is not that i can't work around it.
Comment 5 Nate Graham 2021-01-15 19:54:21 UTC
I'm on openSUSE Tumbleweed with every KDE package built manually (well, using a script) from git master.

If this is truly 100% reproducible for you, can you install debug symbols and attach a new backtrace? We might be able to use that to see if something has changed between 5.20.5 and git master that would explain this.
Comment 6 remcoluit 2021-01-16 07:04:42 UTC
Created attachment 134917 [details]
KDE drag and crash

Small video that shows what is happening.
Comment 7 remcoluit 2021-01-16 07:11:54 UTC
(In reply to Nate Graham from comment #5)
> I'm on openSUSE Tumbleweed with every KDE package built manually (well,
> using a script) from git master.
> 
> If this is truly 100% reproducible for you, can you install debug symbols
> and attach a new backtrace? We might be able to use that to see if something
> has changed between 5.20.5 and git master that would explain this.

See the attached video. In Slackware the debug symbols are stripped when packages are compiled. It should be possible to edit the compile scripts, but for KDE the build scripts are not publicly available as for other packages that are on slackbuilds. I'll wait for updated packages or try to get in contact with the developers, because i think more recent installs face this issue. Thank you for your help.
Comment 8 Nate Graham 2021-01-16 15:05:30 UTC
> but for KDE the build scripts are not publicly available as for other packages
> that are on slackbuilds
Yikes, that doesn't seem right at all!
Comment 9 remcoluit 2021-01-16 20:28:56 UTC
(In reply to Nate Graham from comment #8)
> > but for KDE the build scripts are not publicly available as for other packages
> > that are on slackbuilds
> Yikes, that doesn't seem right at all!

What i said was not true, sorry, they are available. The build script is in the source tree and not in the usual Slackbuild repo. I'll try rebuilding them with debugging enabled and see if the issue remains and i get more information about the problem.
Comment 10 remcoluit 2021-01-17 10:22:21 UTC
Created attachment 134957 [details]
backtrace

Attached the file plasmashell.txt. I reinstalled the kdeclarative package (since that holds the draganddrop libs i think) compiled with debugging symbols. Then attached gdb to plasmashell process as described on the KDE website Plasma/Debugging. Let it crash and applied backtrace and that resulted in the plasmashell file. Is this usefull debugging output?
Comment 11 Nate Graham 2021-01-19 16:29:14 UTC
Thanks. Here's the crashing thread:

Thread 1 (Thread 0x7f0d3122eec0 (LWP 1735) "plasmashell"):
#0  0x0000000000000000 in  ()
#1  0x00007f0d1d4b9690 in DeclarativeMimeData::DeclarativeMimeData(QMimeData const*) () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#2  0x00007f0d1d4b8d40 in DeclarativeDragDropEvent::mimeData() () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#3  0x00007f0d1d4b428d in DeclarativeDragDropEvent::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#4  0x00007f0d37e65a19 in  () at /usr/lib64/libQt5Qml.so.5
#5  0x00007f0d37e831b4 in  () at /usr/lib64/libQt5Qml.so.5
#6  0x00007f0d37e87597 in  () at /usr/lib64/libQt5Qml.so.5
#7  0x00007f0d37e26cbd in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/libQt5Qml.so.5
#8  0x00007f0d37f9124d in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () at /usr/lib64/libQt5Qml.so.5
#9  0x00007f0d37f4830b in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/libQt5Qml.so.5
#10 0x00007f0d37f487b8 in  () at /usr/lib64/libQt5Qml.so.5
#11 0x00007f0d37f75fed in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib64/libQt5Qml.so.5
#12 0x00007f0d364e03bf in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007f0d1d4b3d2f in DeclarativeDropArea::dragEnter(DeclarativeDragDropEvent*) () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#14 0x00007f0d1d4b8e8b in DeclarativeDropArea::dragEnterEvent(QDragEnterEvent*) () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#15 0x00007f0d384f76e8 in QQuickItem::event(QEvent*) () at /usr/lib64/libQt5Quick.so.5
#16 0x00007f0d3719f26f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#17 0x00007f0d364ac34a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#18 0x00007f0d385148a1 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#19 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#20 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#21 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#22 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#23 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#24 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#25 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#26 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#27 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#28 0x00007f0d38514652 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QQuickItem*, QDragMoveEvent*, QVarLengthArray<QQuickItem*, 64>*) () at /usr/lib64/libQt5Quick.so.5
#29 0x00007f0d38514f37 in QQuickWindowPrivate::deliverDragEvent(QQuickDragGrabber*, QEvent*) () at /usr/lib64/libQt5Quick.so.5
#30 0x00007f0d385158a2 in QQuickWindow::event(QEvent*) () at /usr/lib64/libQt5Quick.so.5
#31 0x00007f0d3719f26f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#32 0x00007f0d364ac34a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#33 0x00007f0d364aeb01 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#34 0x00007f0d36500b13 in  () at /usr/lib64/libQt5Core.so.5
#35 0x00007f0d31be35fb in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#36 0x00007f0d31be3878 in  () at /usr/lib64/libglib-2.0.so.0
#37 0x00007f0d31be391f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#38 0x00007f0d365001ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#39 0x00007f0d364aae8b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#40 0x00007f0d364b2aac in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#41 0x00000000004213f1 in  ()
#42 0x00007f0d35cfce6b in __libc_start_main () at /lib64/libc.so.6
#43 0x00000000004215ba in  ()
Detaching from program: /usr/bin/plasmashell, process 1735

Looks a lot like bug 398440. Are you using Wayland, or X11?
Comment 12 remcoluit 2021-01-19 17:36:42 UTC
Indeed the same problem there, when dragging to the panel it crashes. I am using Wayland.

Backtrace from crashed plasmashell:
#0  0x00007f726a75bdff in poll () at /lib64/libc.so.6
#1  0x00007f726c4e8df0 in  () at /usr/lib64/libKF5Crash.so.5
#2  0x00007f726c4e95cc in KCrash::defaultCrashHandler(int) () at /usr/lib64/libKF5Crash.so.5
#3  0x00007f726a692cf0 in <signal handler called> () at /lib64/libc.so.6
#4  0x00007f7251e3068d in DeclarativeMimeData::DeclarativeMimeData(QMimeData const*) ()
    at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#5  0x00007f7251e2fd40 in DeclarativeDragDropEvent::mimeData() () at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#6  0x00007f7251e2b28d in DeclarativeDragDropEvent::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
    at /usr/lib64/qt5/qml/org/kde/draganddrop/libdraganddropplugin.so
#7  0x00007f726c7dda19 in  () at /usr/lib64/libQt5Qml.so.5
#8  0x00007f72394b7794 in  ()
#9  0x0000000000000000 in  ()
Comment 13 Nate Graham 2021-01-19 17:40:07 UTC
Thanks, that would have been nice to know earlier. :) Now my inability to reproduce the bug makes sense, since I'm on X11.

*** This bug has been marked as a duplicate of bug 398440 ***
Comment 14 remcoluit 2021-01-19 17:53:24 UTC
(In reply to Nate Graham from comment #13)
> Thanks, that would have been nice to know earlier. :) Now my inability to
> reproduce the bug makes sense, since I'm on X11.
> 
> *** This bug has been marked as a duplicate of bug 398440 ***

I am sorry for not mentioning it. I am more of a Linux server user and therefore not very familiar with the Desktop Environments. Although i know now that i like KDE the most. But i am now in the phase that i started using my Linux laptop more often and i am very happy with it.