Bug 426767 - kwin crashes when scrolling with scroll bar in kdevelop (Wayland)
Summary: kwin crashes when scrolling with scroll bar in kdevelop (Wayland)
Status: RESOLVED DUPLICATE of bug 425233
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.19.90
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-20 10:42 UTC by Rainer Finke
Modified: 2020-09-21 06:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Finke 2020-09-20 10:42:38 UTC
When I use the scroll bar in kdevelop to scroll through some source code and I release the scroll bar with the mouse, kwin wayland will crash and you are back to the login screen (SDDM). Login with SDDM allows to open a new session, but as there are many left overs from the previous session you need to reboot. The crash happens on Intel and AMD hardware.
 
This seems like a regression in Plasma 5.20 Beta, as I've never seen this before.

STEPS TO REPRODUCE
1. Open a file with a lot of code/text in kdevelop
2. Scroll with the scroll bar

OBSERVED RESULT
- Kwin crashes

EXPECTED RESULT
- Noting will crash

Operating System: Arch Linux
KDE Plasma Version: 5.19.90
KDE Frameworks Version: 5.74.0
Qt Version: 5.15.1
Kernel Version: 5.8.10-arch1-1
OS Type: 64-bit
Processors: 24 × AMD Ryzen 9 3900X 12-Core Processor
Memory: 31.4 GiB of RAM
Graphics Processor: AMD Radeon VII
Comment 1 David Edmundson 2020-09-20 11:46:56 UTC
Can you get a backtrace of kwin please.
https://www.proli.net/2020/04/03/developing-kwin-wayland/
Comment 2 Rainer Finke 2020-09-20 18:35:16 UTC
Well, I will try to provide the requested output but as I'm not a developer I'm not sure how helpful I can be here. First attempt on Arch Linux:

Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
0x00007f73ca295064 in KWaylandServer::BufferInterface::unref() () from /usr/lib/libKWaylandServer.so.5
(gdb) bt
#0  0x00007f73ca295064 in KWaylandServer::BufferInterface::unref() () at /usr/lib/libKWaylandServer.so.5
#1  0x00007f73ca2cf2cd in  () at /usr/lib/libKWaylandServer.so.5
#2  0x00007f73ca2d024d in KWaylandServer::ShadowInterface::~ShadowInterface() () at /usr/lib/libKWaylandServer.so.5
#3  0x00007f73ca2d02da in  () at /usr/lib/libKWaylandServer.so.5
#4  0x00007f73ca2ff578 in  () at /usr/lib/libKWaylandServer.so.5
#5  0x00007f73c7408e90 in  () at /usr/lib/libwayland-server.so.0
#6  0x00007f73c7408f11 in wl_resource_destroy () at /usr/lib/libwayland-server.so.0
#7  0x00007f73c6027a8d in  () at /usr/lib/libffi.so.7
#8  0x00007f73c602701b in  () at /usr/lib/libffi.so.7
#9  0x00007f73c740cf62 in  () at /usr/lib/libwayland-server.so.0
#10 0x00007f73c74092dc in  () at /usr/lib/libwayland-server.so.0
#11 0x00007f73c740afaa in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#12 0x00007f73ca29ba30 in KWaylandServer::Display::Private::dispatch() () at /usr/lib/libKWaylandServer.so.5
#13 0x00007f73c9085036 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007f73c90885a0 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) ()
    at /usr/lib/libQt5Core.so.5
#15 0x00007f73c9088dad in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#16 0x00007f73c9b15752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007f73c904dcda in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#18 0x00007f73c90a3c34 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt5Core.so.5
#19 0x00007f73c90a40b5 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007f73c34c391e in  () at /usr/lib/qt/plugins/platforms/KWinQpaPlugin.so
#21 0x00007f73c904c65c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#22 0x00007f73c9054af4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#23 0x0000557fdfeb484e in  ()
#24 0x00007f73c88c1152 in __libc_start_main () at /usr/lib/libc.so.6
#25 0x0000557fdfeb50de in _start ()


As it is related to kwayland, I compiled it again with debug symbols:

Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
0x00007f19c7e35995 in KWaylandServer::BufferInterface::unref (this=0x55e8209d18b0) at /usr/include/qt/QtCore/qscopedpointer.h:116
116         T *operator->() const noexcept
(gdb) bt
#0  0x00007f19c7e35995 in KWaylandServer::BufferInterface::unref() (this=0x55e8209d18b0) at /usr/include/qt/QtCore/qscopedpointer.h:116
#1  0x00007f19c7e7730d in KWaylandServer::ShadowInterfacePrivate::~ShadowInterfacePrivate() (this=0x55e820a51730, __in_chrg=<optimized out>)
    at /usr/src/debug/kwayland-server/src/server/shadow_interface.cpp:337
#2  0x00007f19c7e77c2d in KWaylandServer::ShadowInterfacePrivate::~ShadowInterfacePrivate() (this=0x55e820a51730, __in_chrg=<optimized out>)
    at /usr/src/debug/kwayland-server/src/server/shadow_interface.cpp:331
#3  QScopedPointerDeleter<KWaylandServer::ShadowInterfacePrivate>::cleanup(KWaylandServer::ShadowInterfacePrivate*) (pointer=0x55e820a51730)
    at /usr/include/qt/QtCore/qscopedpointer.h:60
#4  QScopedPointer<KWaylandServer::ShadowInterfacePrivate, QScopedPointerDeleter<KWaylandServer::ShadowInterfacePrivate> >::~QScopedPointer()
    (this=0x55e82092b450, __in_chrg=<optimized out>) at /usr/include/qt/QtCore/qscopedpointer.h:107
#5  KWaylandServer::ShadowInterface::~ShadowInterface() (this=0x55e82092b440, __in_chrg=<optimized out>)
    at /usr/src/debug/kwayland-server/src/server/shadow_interface.cpp:354
#6  0x00007f19c7e77cba in KWaylandServer::ShadowInterface::~ShadowInterface() (this=0x55e82092b440, __in_chrg=<optimized out>)
    at /usr/src/debug/kwayland-server/src/server/shadow_interface.cpp:354
#7  KWaylandServer::ShadowInterfacePrivate::org_kde_kwin_shadow_destroy_resource(QtWaylandServer::org_kde_kwin_shadow::Resource*)
    (this=<optimized out>, resource=<optimized out>) at /usr/src/debug/kwayland-server/src/server/shadow_interface.cpp:246
#8  0x00007f19c7eab250 in QtWaylandServer::org_kde_kwin_shadow::destroy_func(wl_resource*) (client_resource=<optimized out>)
    at /usr/include/qt/QtCore/qmap.h:212
#9  0x00007f19c4fa6e90 in  () at /usr/lib/libwayland-server.so.0
#10 0x00007f19c4fa6f11 in wl_resource_destroy () at /usr/lib/libwayland-server.so.0
#11 0x00007f19c3bc5a8d in  () at /usr/lib/libffi.so.7
#12 0x00007f19c3bc501b in  () at /usr/lib/libffi.so.7
#13 0x00007f19c4faaf62 in  () at /usr/lib/libwayland-server.so.0
#14 0x00007f19c4fa72dc in  () at /usr/lib/libwayland-server.so.0
#15 0x00007f19c4fa8faa in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#16 0x00007f19c7e3c9e0 in KWaylandServer::Display::Private::dispatch() (this=<optimized out>)
    at /usr/src/debug/kwayland-server/src/server/display.cpp:135
#17 0x00007f19c6c23036 in  () at /usr/lib/libQt5Core.so.5
#18 0x00007f19c6c265a0 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) ()
    at /usr/lib/libQt5Core.so.5
#19 0x00007f19c6c26dad in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#20 0x00007f19c76b3752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#21 0x00007f19c6bebcda in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#22 0x00007f19c6c41c34 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt5Core.so.5
#23 0x00007f19c6c420b5 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#24 0x00007f19c106191e in  () at /usr/lib/qt/plugins/platforms/KWinQpaPlugin.so
#25 0x00007f19c6bea65c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007f19c6bf2af4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#27 0x000055e81d73884e in  ()
#28 0x00007f19c645f152 in __libc_start_main () at /usr/lib/libc.so.6
#29 0x000055e81d7390de in _start ()


I've replaced now qt5-base 5.15.1 with qt5-base-debug 5.15.0 (which is the latest one available from the Arch Linux debug repository)... but now I can't login to Plasma anymore :-( 

I will try to compile qt5-base now as well, but it may take some time on my notebook.
Comment 3 David Edmundson 2020-09-20 18:52:08 UTC
That's perfect as-is. 

thanks
Comment 4 Vlad Zahorodnii 2020-09-21 06:58:47 UTC

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