Bug 452797

Summary: kwin_wayland crashed when firefox tried to copy something into the clipboard
Product: [Plasma] kwin Reporter: hasezoey
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: hasezoey, nate
Priority: NOR    
Version: 5.24.4   
Target Milestone: ---   
Platform: Manjaro   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description hasezoey 2022-04-20 14:24:02 UTC
SUMMARY
Sometimes in kde (wayland) the clipboard starts to stop working (copy paste with CTRL+C CTRL+V), when that happens and a application (in this case firefox) explicitly tries to copy something to the clip-board, it crashes the whole compositor, and it also does not recover from it


STEPS TO REPRODUCE

i dont know how to get the base conditions, and i did not have it occur again yet, so here are the steps i had took just before the crash:
1. wait until getting the clipboard to stop working (eg meaning CTRL+C CTRL+V dont do anything anymore)
2. use a application that can explicitly copy something into the clipboard (in my case it was firefox)
3. let the application (in my case firefox) copy something into the clipboard
4. observe "kwin_wayland" to dump its core

OBSERVED RESULT
Full Crash without recovery

EXPECTED RESULT
No Crash and recovery when crash

SOFTWARE/OS VERSIONS
Operating System: Manjaro Linux
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.92.0
Qt Version: 5.15.3
Kernel Version: 5.17.1-3-MANJARO (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-7700K CPU @ 4.20GHz
Memory: 31.3 GiB of RAM
Graphics Processor: AMD Radeon RX Vega

ADDITIONAL INFORMATION
I am sorry for not being able to provide more concrete reproduction steps, but i have no clue aside from what i listed on what could have triggered this

"coredumpctl gdb NUM" output:
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 5 --socket wayland-0 --xwayland-fd 6 --xwayl'.

Program terminated with signal SIGSEGV, Segmentation fault.
#0  KWaylandServer::SurfaceInterface::isMapped (this=0x0) at /usr/include/qt/QtCore/qscopedpointer.h:116

warning: Source file is more recent than executable.
116         T *operator->() const noexcept
[Current thread is 1 (Thread 0x7f2c73e48a80 (LWP 1923))]
(gdb) bt
#0  KWaylandServer::SurfaceInterface::isMapped() const (this=0x0) at /usr/include/qt/QtCore/qscopedpointer.h:116
#1  0x00007f2c7afbda1c in KWaylandServer::SurfaceInterfacePrivate::computeEffectiveMapped() const
    (this=<optimized out>, this=0x560f164646f0)
    at /usr/src/debug/kwayland-server-5.24.4/src/server/surface_interface.cpp:681
#2  KWaylandServer::SurfaceInterfacePrivate::updateEffectiveMapped() (this=this@entry=0x560f164646f0)
    at /usr/src/debug/kwayland-server-5.24.4/src/server/surface_interface.cpp:686
#3  0x00007f2c7afc1060 in KWaylandServer::SurfaceInterfacePrivate::applyState(KWaylandServer::SurfaceState*)
    (this=0x560f164646f0, next=<optimized out>)
    at /usr/src/debug/kwayland-server-5.24.4/src/server/surface_interface.cpp:604
#4  0x00007f2c76fd8d4a in  () at /usr/lib/libffi.so.8
#5  0x00007f2c76fd8267 in  () at /usr/lib/libffi.so.8
#6  0x00007f2c781fbaf2 in wl_closure_invoke (closure=closure@entry=0x560f15bcf9c0, target=<optimized out>, 
    target@entry=0x560f160333c0, opcode=opcode@entry=6, data=<optimized out>, 
    data@entry=0x560f15efa110, flags=<optimized out>) at ../wayland-1.20.0/src/connection.c:1025
#7  0x00007f2c781ffe14 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x560f15efa110)
    at ../wayland-1.20.0/src/wayland-server.c:437
#8  0x00007f2c781fe84a in wl_event_loop_dispatch (loop=0x560f14992d50, timeout=<optimized out>)
    at ../wayland-1.20.0/src/event-loop.c:1027
#9  0x00007f2c7af86b7b in KWaylandServer::Display::dispatchEvents() (this=<optimized out>)
    at /usr/src/debug/kwayland-server-5.24.4/src/server/display.cpp:114
#10 0x00007f2c79277463 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007f2c792794e4 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () at /usr/lib/libQt5Core.so.5
#12 0x00007f2c79279faf in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007f2c79d041c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
--Type <RET> for more, q to quit, c to continue without paging--c
#14 0x00007f2c792465aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007f2c79291214 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt5Core.so.5
#16 0x00007f2c79292185 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x0000560f145807e2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#18 0x00007f2c7923e88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#19 0x00007f2c79249fd7 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#20 0x0000560f1448f32a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-5.24.4/src/main_wayland.cpp:727
Comment 1 Nate Graham 2022-04-20 15:20:04 UTC
Already fixed in Plasma 5.25, apparently!

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