Bug 428399 - kwin crashes when dragging an icon from kickoff to konsole
Summary: kwin crashes when dragging an icon from kickoff to konsole
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 432815 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-10-28 18:49 UTC by Vlad Zahorodnii
Modified: 2021-02-11 22:30 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.21
vlad.zahorodnii: Wayland+
vlad.zahorodnii: X11-


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Zahorodnii 2020-10-28 18:49:01 UTC
STEPS TO REPRODUCE
1. Drag an icon from Kickoff to Konsole

OBSERVED RESULT
  * frame #0: 0x00007fcde9b36956 libKWaylandServer.so.5`QListData::isEmpty(this=0x0000000000000148) const at qlist.h:116:51
    frame #1: 0x00007fcde9b9bc8c libKWaylandServer.so.5`QList<KWaylandServer::KWaylandFrameCallback*>::isEmpty(this=0x0000000000000148) const at qlist.h:201:60
    frame #2: 0x00007fcde9b958bc libKWaylandServer.so.5`KWaylandServer::SurfaceInterface::frameRendered(this=0x0000558484a007f0, msec=98331) at surface_interface.cpp:432:63
    frame #3: 0x00007fcdec57370b libkwin.so.5`KWin::CursorImage::markAsRendered(this=0x0000558483a41950) at pointer_input.cpp:972:33
    frame #4: 0x00007fcdec5801e9 libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::CursorImage::*)()>::call(f=86 36 57 ec cd 7f 00 00 00 00 00 00 00 00 00 00, o=0x0000558483a41950, arg=0x00007fffd195db70)(), KWin::CursorImage*, void**) at qobjectdefs_impl.h:152:20
    frame #5: 0x00007fcdec57ed5c libkwin.so.5`void QtPrivate::FunctionPointer<void (KWin::CursorImage::*)()>::call<QtPrivate::List<>, void>(f=86 36 57 ec cd 7f 00 00 00 00 00 00 00 00 00 00, o=0x0000558483a41950, arg=0x00007fffd195db70)(), KWin::CursorImage*, void**) at qobjectdefs_impl.h:185:95
    frame #6: 0x00007fcdec57d6df libkwin.so.5`QtPrivate::QSlotObject<void (KWin::CursorImage::*)(), QtPrivate::List<>, void>::impl(which=1, this_=0x0000558484031460, r=0x0000558483a41950, a=0x00007fffd195db70, ret=0x0000000000000000) at qobjectdefs_impl.h:418:49
    frame #7: 0x00007fcde7ff652f libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x0000558484031460, r=0x0000558483a41950, a=0x00007fffd195db70) at qobjectdefs_impl.h:398:57
    frame #8: 0x00007fcde8039778 libQt5Core.so.5`void doActivate<false>(sender=0x00005584836ec8b0, signal_index=7, argv=0x00007fffd195db70) at qobject.cpp:3886:30
    frame #9: 0x00007fcde8032cd9 libQt5Core.so.5`QMetaObject::activate(sender=0x00005584836ec8b0, m=0x00007fcdec8b0480, local_signal_index=4, argv=0x00007fffd195db70) at qobject.cpp:3946:26
    frame #10: 0x00007fcdec3e6756 libkwin.so.5`KWin::Cursor::rendered(this=0x00005584836ec8b0, _t1=0x00007fffd195dbb0) at moc_cursor.cpp:230:26
    frame #11: 0x00007fcdec468f7c libkwin.so.5`KWin::Cursor::markAsRendered(this=0x00005584836ec8b0) at cursor.h:170:24
    frame #12: 0x00007fcdec464b94 libkwin.so.5`KWin::Compositor::performCompositing(this=0x00005584837a50e0) at composite.cpp:709:61
    frame #13: 0x00007fcdec464277 libkwin.so.5`KWin::Compositor::bufferSwapComplete(this=0x00005584837a50e0) at composite.cpp:593:27
    frame #14: 0x00007fcde209bb7d KWinWaylandDrmBackend.so`KWin::DrmBackend::pageFlipHandler(fd=33, frame=115772, sec=1933, usec=504535, data=0x0000558483797a50) at drm_backend.cpp:223:51
    frame #15: 0x00007fcdec2db4a5 libdrm.so.2`drmHandleEvent + 293
    frame #16: 0x00007fcde209bbeb KWinWaylandDrmBackend.so`operator(__closure=0x00005584837b6990) at drm_backend.cpp:266:31
    frame #17: 0x00007fcde209fb11 KWinWaylandDrmBackend.so`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::DrmBackend::openDrm()::<lambda()> >::call(f=0x00005584837b6990, arg=0x00007fffd195e3f0) &, void **) at qobjectdefs_impl.h:146:14
    frame #18: 0x00007fcde209f83d KWinWaylandDrmBackend.so`QtPrivate::Functor<KWin::DrmBackend::openDrm()::<lambda()>, 0>::call<QtPrivate::List<>, void>(f=0x00005584837b6990, (null)=0x00005584836726b0, arg=0x00007fffd195e3f0) &, void *, void **) at qobjectdefs_impl.h:256:83
    frame #19: 0x00007fcde209f420 KWinWaylandDrmBackend.so`QtPrivate::QFunctorSlotObject<KWin::DrmBackend::openDrm()::<lambda()>, 0, QtPrivate::List<>, void>::impl(which=1, this_=0x00005584837b6980, r=0x00005584836726b0, a=0x00007fffd195e3f0, ret=0x0000000000000000) at qobjectdefs_impl.h:443:49
    frame #20: 0x00007fcde7ff652f libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x00005584837b6980, r=0x00005584836726b0, a=0x00007fffd195e3f0) at qobjectdefs_impl.h:398:57
    frame #21: 0x00007fcde8039778 libQt5Core.so.5`void doActivate<false>(sender=0x00005584837bb160, signal_index=3, argv=0x00007fffd195e3f0) at qobject.cpp:3886:30
    frame #22: 0x00007fcde8032cd9 libQt5Core.so.5`QMetaObject::activate(sender=0x00005584837bb160, m=0x00007fcde83d6380, local_signal_index=0, argv=0x00007fffd195e3f0) at qobject.cpp:3946:26
    frame #23: 0x00007fcde8043530 libQt5Core.so.5`QSocketNotifier::activated(this=0x00005584837bb160, _t1=(sockfd = 33), _t2=Read, _t3=QPrivateSignal @ 0x00007fffd195e3df) at moc_qsocketnotifier.cpp:178:26
    frame #24: 0x00007fcde8043077 libQt5Core.so.5`QSocketNotifier::event(this=0x00005584837bb160, e=0x00007fffd195e940) at qsocketnotifier.cpp:302:23
    frame #25: 0x00007fcde8ec3d2b libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x0000558483634340, receiver=0x00005584837bb160, e=0x00007fffd195e940) at qapplication.cpp:3632:31
    frame #26: 0x00007fcde8ec1069 libQt5Widgets.so.5`QApplication::notify(this=0x00007fffd195ecd0, receiver=0x00005584837bb160, e=0x00007fffd195e940) at qapplication.cpp:2972:31
    frame #27: 0x00007fcde7fe4255 libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x00005584837bb160, event=0x00007fffd195e940) at qcoreapplication.cpp:1063:24
    frame #28: 0x00007fcde7fe4cac libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x00005584837bb160, event=0x00007fffd195e940) at qcoreapplication.cpp:1458:27
    frame #29: 0x00007fcde80760ed libQt5Core.so.5`QEventDispatcherUNIXPrivate::activateSocketNotifiers(this=0x00005584836430d0) at qeventdispatcher_unix.cpp:304:36
    frame #30: 0x00007fcde8076f15 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(this=0x000055848364c620, flags=(i = 36)) at qeventdispatcher_unix.cpp:511:50
    frame #31: 0x00007fcde30d651c KWinQpaPlugin.so`QUnixEventDispatcherQPA::processEvents(this=0x000055848364c620, flags=(i = 36)) at qunixeventdispatcher.cpp:63:67
    frame #32: 0x00007fcde7fe0917 libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fffd195eb00, flags=(i = 36)) at qeventloop.cpp:139:68
    frame #33: 0x00007fcde7fe0c79 libQt5Core.so.5`QEventLoop::exec(this=0x00007fffd195eb00, flags=(i = 0)) at qeventloop.cpp:232:22
    frame #34: 0x00007fcde7fe4aee libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1371:36
    frame #35: 0x00007fcde8529184 libQt5Gui.so.5`QGuiApplication::exec() at qguiapplication.cpp:1867:34
    frame #36: 0x00007fcde8ec0a35 libQt5Widgets.so.5`QApplication::exec() at qapplication.cpp:2824:33
    frame #37: 0x00005584818a5417 kwin_wayland`main(argc=3, argv=0x00007fffd195ef38) at main_wayland.cpp:702:18
    frame #38: 0x00007fcde7666152 libc.so.6`__libc_start_main + 242
    frame #39: 0x000055848189bc9e kwin_wayland`_start + 46

EXPECTED RESULT
No crash
Comment 1 Justin Zobel 2020-10-28 23:44:16 UTC
I have tried to replicate this on KDE Neon User Edition but can't. It pastes the link to the .desktop file in Konsole for me.
Comment 2 Vlad Zahorodnii 2020-10-29 07:10:34 UTC
What version of plasma do you run?
Comment 3 Bug Janitor Service 2020-10-29 07:10:51 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwayland-server/-/merge_requests/110
Comment 4 Justin Zobel 2020-10-29 08:56:57 UTC
(In reply to Vlad Zahorodnii from comment #2)
> What version of plasma do you run?

KDE Neon User Edition runs the latest release of Plasma.

In this case it's Plasma 5.20.2
Frameworks 5.75.0
Qt 5.15.0
Comment 5 Vlad Zahorodnii 2020-10-29 09:10:56 UTC
Weird. Either way, it's better to ensure that kwin doesn't try to access a dangling pointer.
Comment 6 Nate Graham 2020-10-29 14:42:08 UTC
Fixed by Vlad Zahorodnii with https://commits.kde.org/kwayland-server/bfc4dadddc7e42342f56c59427f395203272a701 in Plasma 5.21.
Comment 7 David Edmundson 2021-02-11 22:30:02 UTC
*** Bug 432815 has been marked as a duplicate of this bug. ***