Bug 469894

Summary: [NVIDIA+WAYLAND] Plasmashell crashes when dragging a file/image from notifications applet
Product: [Plasma] plasmashell Reporter: Samuel <sampingu02>
Component: NotificationsAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kde, nate, nicolas.fella
Priority: NOR Keywords: wayland
Version: 5.27.4   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: GDB Log of reproduced bug in plasmashell
Journal log of plasmashell when the crash occured

Description Samuel 2023-05-17 14:35:00 UTC
SUMMARY
In Plasma Wayland session, when a file/image is dragged from system tray notifications applet, the entire shell crashes.

STEPS TO REPRODUCE
1. Log into Plasma Wayland session and take a screenshot or download/move/copy a file.
2. Let the notification timer run-out and get stored in notifications applet in system tray.
3. Open the notifications applet and drag the screenshot/file from here -> Plasmashell crashes and gets replaced immediately.

OBSERVED RESULT
Plasmashell crashes when dragging a file from notifications applet and gets replaced immediately.

EXPECTED RESULT
Dragging a file from notification stored inside notification applet not resulting a crash.

SOFTWARE/OS VERSIONS
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9

ADDITIONAL INFORMATION
using NVIDIA GeForce GTX 1060 with the NVIDIA proprietary 525.89 driver.

Here is the video showcasing this bug: https://www.youtube.com/watch?v=6SQyGM9K1p4
Comment 1 Nate Graham 2023-05-17 20:13:12 UTC
If something crashed, we need a backtrace of it so we can figure out what's going on. Can you please attach a backtrace of the crash using the coredumpctl command-line program, as detailed in https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl?

Thanks!
Comment 2 Samuel 2023-05-18 05:07:21 UTC
Created attachment 159057 [details]
GDB Log of reproduced bug in plasmashell
Comment 3 Samuel 2023-05-18 05:08:59 UTC
Created attachment 159058 [details]
Journal log of plasmashell when the crash occured
Comment 4 Nate Graham 2023-05-18 14:35:31 UTC
Pasting the backtrace inline for searchability:

#0  QDrag::dragCursor (this=0x5555579a4180, action=action@entry=Qt::MoveAction) at kernel/qdrag.cpp:349
#1  0x00007ffff5da7be2 in QBasicDrag::updateCursor (this=this@entry=0x5555556240c0, action=Qt::MoveAction) at kernel/qsimpledrag.cpp:307
#2  0x00007ffff6d45e78 in QtWaylandClient::QWaylandDrag::setResponse (this=this@entry=0x5555556240c0, response=...) at /usr/src/debug/qt5-qtwayland-5.15.9-1.fc38.x86_64/src/client/qwaylanddnd.cpp:123
#3  0x00007ffff6d4b05a in operator() (action=Qt::MoveAction, accepted=true, __closure=<optimized out>) at /usr/src/debug/qt5-qtwayland-5.15.9-1.fc38.x86_64/src/client/qwaylanddatadevice.cpp:140
#4  QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<bool, Qt::DropAction>, void, QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146
#5  QtPrivate::Functor<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2>::call<QtPrivate::List<bool, Qt::DropAction>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
#6  QtPrivate::QFunctorSlotObject<QtWaylandClient::QWaylandDataDevice::startDrag(QMimeData*, Qt::DropActions, QtWaylandClient::QWaylandWindow*)::<lambda(bool, Qt::DropAction)>, 2, QtPrivate::List<bool, Qt::DropAction>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443
#7  0x00007ffff58e8651 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffc990, r=<optimized out>, this=0x5555577c7aa0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false> (sender=0x555555efcc70, signal_index=5, argv=0x7fffffffc990) at kernel/qobject.cpp:3923
#9  0x00007ffff58e34d7 in QMetaObject::activate (sender=<optimized out>, m=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffffffc990) at kernel/qobject.cpp:3983
#10 0x00007ffff6d4f4c9 in QtWaylandClient::QWaylandDataSource::dndResponseUpdated (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qwaylanddatasource_p.cpp:184
#11 0x00007ffff6d4e0a9 in QtWayland::wl_data_source::handle_target (data=0x555555efcc80, object=<optimized out>, mime_type=0x7fff8000195c "text/uri-list") at /usr/src/debug/qt5-qtwayland-5.15.9-1.fc38.x86_64/src/client/qwayland-wayland.cpp:697
#12 0x00007ffff72aebe6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#13 0x00007ffff72ab4bf in ffi_call_int (cif=cif@entry=0x7fffffffcbc0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#14 0x00007ffff72ae18e in ffi_call (cif=cif@entry=0x7fffffffcbc0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fffffffcc90) at ../src/x86/ffi64.c:710
#15 0x00007ffff7dcef0e in wl_closure_invoke (closure=closure@entry=0x7fff80001880, target=<optimized out>, target@entry=0x555557866a90, opcode=opcode@entry=0, data=<optimized out>, flags=1) at ../src/connection.c:1025
#16 0x00007ffff7dcf793 in dispatch_event (display=display@entry=0x555555627520, queue=0x555555627610) at ../src/wayland-client.c:1631
#17 0x00007ffff7dcfa3c in dispatch_queue (queue=0x555555627610, display=0x555555627520) at ../src/wayland-client.c:1777
#18 wl_display_dispatch_queue_pending (display=0x555555627520, queue=0x555555627610) at ../src/wayland-client.c:2019
#19 0x00007ffff6d26b4d in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qt5-qtwayland-5.15.9-1.fc38.x86_64/src/client/qwaylanddisplay.cpp:255
#20 0x00007ffff58e87d8 in doActivate<false> (sender=0x555555641480, signal_index=4, argv=0x7fffffffcee0) at kernel/qobject.cpp:3935
#21 0x00007ffff58e34d7 in QMetaObject::activate (sender=sender@entry=0x555555641480, m=m@entry=0x7ffff5b65aa0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3983
#22 0x00007ffff58b07e7 in QAbstractEventDispatcher::awake (this=this@entry=0x555555641480) at .moc/moc_qabstracteventdispatcher.cpp:149
#23 0x00007ffff590694d in QEventDispatcherGlib::processEvents (this=0x555555641480, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#24 0x00007ffff58b270b in QEventLoop::exec (this=this@entry=0x55555a17ab50, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#25 0x00007ffff5da6a38 in QBasicDrag::drag (this=0x5555556240c0, o=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x00007ffff5da4e6d in QDragManager::drag (this=0x555557e013a0, o=o@entry=0x5555579a4180) at kernel/qdnd.cpp:117
#27 0x00007ffff5da5203 in QDrag::exec (this=0x5555579a4180, supportedActions=..., defaultDropAction=defaultDropAction@entry=Qt::IgnoreAction) at kernel/qdrag.cpp:283
#28 0x00007ffff5da529b in QDrag::exec (this=<optimized out>, supportedActions=...) at kernel/qdrag.cpp:238
#29 0x00007fffd0df3c40 in DragHelper::doDrag (pixmap=..., url=..., item=<optimized out>, this=0x555559eb0db0) at /usr/include/qt5/QtCore/qflags.h:121
#30 DragHelper::qt_static_metacall (_o=0x555559eb0db0, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/plasma-workspace-5.27.4.1-2.fc38.x86_64/redhat-linux-build/applets/notifications/org.kde.plasma.notifications_autogen/EWIEGA46WW/moc_draghelper.cpp:119
#31 0x00007ffff58df73b in QObject::event (this=0x555559eb0db0, e=0x7fffd4002ce0) at kernel/qobject.cpp:1347
#32 0x00007ffff65aeb75 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555559eb0db0, e=0x7fffd4002ce0) at kernel/qapplication.cpp:3640
#33 0x00007ffff58b3d48 in QCoreApplication::notifyInternal2 (receiver=0x555559eb0db0, event=0x7fffd4002ce0) at kernel/qcoreapplication.cpp:1064
#34 0x00007ffff58b3f62 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#35 0x00007ffff58b71f5 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555555615b20) at kernel/qcoreapplication.cpp:1821
#36 0x00007ffff58b74ad in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
#37 0x00007ffff5906e2f in postEventSourceDispatch (s=0x55555563cfc0) at kernel/qeventdispatcher_glib.cpp:277
#38 0x00007ffff458c39c in g_main_dispatch (context=0x7fffdc000ee0) at ../glib/gmain.c:3460
#39 g_main_context_dispatch (context=0x7fffdc000ee0) at ../glib/gmain.c:4200
#40 0x00007ffff45ea438 in g_main_context_iterate.isra.0 (context=0x7fffdc000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#41 0x00007ffff4589a23 in g_main_context_iteration (context=0x7fffdc000ee0, may_block=1) at ../glib/gmain.c:4343
#42 0x00007ffff5906919 in QEventDispatcherGlib::processEvents (this=0x555555641480, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#43 0x00007ffff58b270b in QEventLoop::exec (this=this@entry=0x7fffffffd5a0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#44 0x00007ffff58ba99b in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#45 0x00007ffff5d606bd in QGuiApplication::exec () at kernel/qguiapplication.cpp:1863
#46 0x00007ffff65aeae9 in QApplication::exec () at kernel/qapplication.cpp:2832
#47 0x000055555557f62a in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-5.27.4.1-2.fc38.x86_64/shell/main.cpp:235
Comment 5 Nicolas Fella 2024-01-27 21:46:00 UTC

*** This bug has been marked as a duplicate of bug 470925 ***