Bug 429202

Summary: Desktop Grid crashes in AbstractClient::setDesktops()
Product: [Plasma] kwin Reporter: QuirinBrunner
Component: effects-desktop-gridAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: herzenschein, jakubby, nate, postix, wittemar
Priority: NOR    
Version: 5.24.1   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Full stracktace from Plasma 5.24.0 on openSUSE TW
KWin support informationen on Plasma 5.24.0 and openSUSE TW
Stracktace: Wayland

Description QuirinBrunner 2020-11-16 16:51:57 UTC
SUMMARY
Kwin will crash when dragging on the black seperator between desktops. 

STEPS TO REPRODUCE
1. Spread your desktop into 2 rows with 2 desktops each.
2. Place two open programs on horizontally neighboring desktops. 
3. Put your mouse over the black seperator between those two desktops.
4. Click and hold the mouse button, while moving it slightly within the black seperator.

OBSERVED RESULT
Kwin Crashes

EXPECTED RESULT
Nothing


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 5.9.8-arch1-1
(available in About System)
KDE Plasma Version: KDE Plasma 5.20.3
KDE Frameworks Version: 5.76.0
Qt Version: 5.15-1

ADDITIONAL INFORMATION
Comment 1 Thiago Sueto 2020-11-22 02:35:26 UTC
Can confirm. This is easier to reproduce when increasing the border width to 50 in the grid desktop effect.

Attaching backtrace:

[New Thread 0x7f066cae3640 (LWP 17693)]

Thread 1 "kwin_x11" received signal SIGSEGV, Segmentation fault.
0x00007f0675e1fb6b in KWin::VirtualDesktop::x11DesktopNumber (this=0x0) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/build/kwin_autogen/EWIEGA46WW/../../../virtualdesktops.h:57
57	        return m_x11DesktopNumber;

Thread 10 (Thread 0x7f066cae3640 (LWP 17693)):
#0  0x00007f067448393e in ppoll () at /lib64/libc.so.6
#1  0x00007f0674a8aad9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f066405c958) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f066405c958) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7f066405c958, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f0674a8c173 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f0674a35edb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f066cae2c60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f0674856c8e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f06732e62d5 in  () at /usr/lib64/libQt5Qml.so.5
#9  0x00007f0674857dd1 in QThreadPrivate::start(void*) (arg=0x564f868459e0) at thread/qthread_unix.cpp:329
#10 0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 9 (Thread 0x7f0655162640 (LWP 17414)):
#0  0x00007f0673d0b6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f0674181ccc in  () at /usr/lib64/libQt5Script.so.5
#2  0x00007f0674181cfb in  () at /usr/lib64/libQt5Script.so.5
#3  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7f06577fe640 (LWP 17412)):
#0  0x00007f0673d0b6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f065dc83f1b in  () at /usr/lib64/dri/i965_dri.so
#2  0x00007f065dc83767 in  () at /usr/lib64/dri/i965_dri.so
#3  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f0657fff640 (LWP 17411)):
#0  0x00007f0673d0b6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f065dc83f1b in  () at /usr/lib64/dri/i965_dri.so
#2  0x00007f065dc83767 in  () at /usr/lib64/dri/i965_dri.so
#3  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f065cdae640 (LWP 17410)):
#0  0x00007f0673d0b6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f065dc83f1b in  () at /usr/lib64/dri/i965_dri.so
#2  0x00007f065dc83767 in  () at /usr/lib64/dri/i965_dri.so
#3  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f065d5af640 (LWP 17409)):
#0  0x00007f0673d0b6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f065dc83f1b in  () at /usr/lib64/dri/i965_dri.so
#2  0x00007f065dc83767 in  () at /usr/lib64/dri/i965_dri.so
#3  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f065ffff640 (LWP 17407)):
#0  0x00007f067448393e in ppoll () at /lib64/libc.so.6
#1  0x00007f0674a8aad9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f0658000d78) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f0658000d78) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7f0658000d78, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f0674a8c173 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f0674a35edb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f065fffec60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f0674856c8e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f06732e62d5 in  () at /usr/lib64/libQt5Qml.so.5
#9  0x00007f0674857dd1 in QThreadPrivate::start(void*) (arg=0x564f85eb0850) at thread/qthread_unix.cpp:329
#10 0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f066dd65640 (LWP 17405)):
#0  0x00007f067448393e in ppoll () at /lib64/libc.so.6
#1  0x00007f0674a8aad9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=3, fds=0x7f066000afa8) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=3, fds=0x7f066000afa8) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7f066000afa8, nfds=3, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f0674a8c173 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f0674a35edb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f066dd64c30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f0674856c8e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f0675c167c7 in  () at /usr/lib64/libQt5DBus.so.5
#9  0x00007f0674857dd1 in QThreadPrivate::start(void*) (arg=0x7f0675c84420) at thread/qthread_unix.cpp:329
#10 0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f066ea0e640 (LWP 17404)):
#0  0x00007f067448383f in poll () at /lib64/libc.so.6
#1  0x00007f0674743862 in  () at /usr/lib64/libxcb.so.1
#2  0x00007f067474526c in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007f066eafbe20 in  () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f0674857dd1 in QThreadPrivate::start(void*) (arg=0x564f85b600b0) at thread/qthread_unix.cpp:329
#5  0x00007f0673d053e9 in start_thread () at /lib64/libpthread.so.0
#6  0x00007f067448e943 in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f06709ce880 (LWP 17403)):
#0  0x00007f0675e1fb6b in KWin::VirtualDesktop::x11DesktopNumber() const (this=0x0) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/build/kwin_autogen/EWIEGA46WW/../../../virtualdesktops.h:57
#1  KWin::AbstractClient::desktop() const (this=0x564f85e950d0) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/build/kwin_autogen/EWIEGA46WW/../../../abstract_client.h:473
#2  0x00007f0675e48f35 in KWin::AbstractClient::setDesktops(QVector<KWin::VirtualDesktop*>) (this=<optimized out>, desktops=...) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/abstract_client.cpp:474
#3  0x00007f0675ea0239 in KWin::EffectsHandlerImpl::windowToDesktops(KWin::EffectWindow*, QVector<unsigned int> const&) (this=<optimized out>, w=<optimized out>, desktopIds=...) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/effects.cpp:916
#4  0x00007f06742ece62 in KWin::DesktopGridEffect::windowInputMouseEvent(QEvent*) (this=0x564f86784a90, e=<optimized out>) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/effects/desktopgrid/desktopgrid.cpp:552
#5  0x00007f0675e9a857 in KWin::EffectsHandlerImpl::checkInputWindowEvent(QMouseEvent*) (e=0x7fff6ffa8cb0, this=<optimized out>) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/effects.cpp:1265
#6  KWin::EffectsHandlerImpl::checkInputWindowEvent(QMouseEvent*) (this=<optimized out>, e=e@entry=0x7fff6ffa8cb0) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/effects.cpp:1259
#7  0x00007f066d5390a2 in KWin::EffectsMouseInterceptionX11Filter::event(xcb_generic_event_t*) (this=0x564f86835be0, event=0x7f0668009d30) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/plugins/platforms/x11/standalone/effects_mouse_interception_x11_filter.cpp:90
#8  0x00007f0675ea804e in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=<optimized out>, e=0x7f0668009d30) at /usr/include/qt5/QtCore/qvector.h:1041
#9  0x00007f0674a34a67 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=0x7f0668009d30, result=0x7fff6ffa8e68) at kernel/qabstracteventdispatcher.cpp:495
#10 0x00007f066ead9121 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () at /usr/lib64/libQt5XcbQpa.so.5
#11 0x00007f066eada636 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5XcbQpa.so.5
#12 0x00007f066eafd1cc in  () at /usr/lib64/libQt5XcbQpa.so.5
#13 0x00007f0674a35edb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff6ffa8fb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#14 0x00007f0674a3e150 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#15 0x0000564f83d09f8b in main(int, char**) (argc=<optimized out>, argv=0x7fff6ffa9238) at /usr/src/debug/kwin5-5.20.80git.20201120T181852~786207a4b-ku.29.1.x86_64/main_x11.cpp:484
A debugging session is active.

	Inferior 1 [process 17403] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
[Inferior 1 (process 17403) detached]
Comment 2 Vlad Zahorodnii 2021-01-14 07:33:45 UTC
*** Bug 431564 has been marked as a duplicate of this bug. ***
Comment 3 Nate Graham 2021-06-17 18:07:30 UTC
*** Bug 438813 has been marked as a duplicate of this bug. ***
Comment 4 postix 2021-06-17 18:16:32 UTC
Before it's vanishes in the duplicate report ... Please see https://bugsfiles.kde.org/attachment.cgi?id=139441 for my full backtrace with debug symbols.
Comment 5 postix 2021-07-28 16:34:28 UTC
*** Bug 410839 has been marked as a duplicate of this bug. ***
Comment 6 postix 2022-02-13 15:41:22 UTC
Created attachment 146673 [details]
Full stracktace from Plasma 5.24.0 on openSUSE TW

Just happened again to me on:

Operating System: openSUSE Tumbleweed 20220210
KDE Plasma Version: 5.24.0
KDE Frameworks Version: 5.90.0
Qt Version: 5.15.2
Kernel Version: 5.16.5-1-default (64-bit)
Graphics Platform: X11
Graphics Processor: AMD Radeon RX 580 Series

when dragging the VLC media player on screen 2 (HDMI) from on virtual desktop to another on the same screen within the effect.
Comment 7 postix 2022-02-13 15:43:13 UTC
Created attachment 146674 [details]
KWin support informationen on Plasma 5.24.0 and openSUSE TW
Comment 8 postix 2022-02-21 14:22:20 UTC
Created attachment 147003 [details]
Stracktace: Wayland

It apparently also happens under Wayland and here it teared down the whole session and all apps were terminated, though the desktop itself recovered.
Comment 9 Nate Graham 2022-05-19 16:49:08 UTC
Can someone check again in the Plasma 5.25 beta (or the final release in a month) to see if they're still able to experience this? The effect was rewritten and there's a good chance the issue is fixed now. Thanks!
Comment 10 Bug Janitor Service 2022-06-03 04:35:46 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 11 jakubby 2022-06-03 10:21:39 UTC
(In reply to Nate Graham from comment #9)
> Can someone check again in the Plasma 5.25 beta (or the final release in a
> month) to see if they're still able to experience this? The effect was
> rewritten and there's a good chance the issue is fixed now. Thanks!

I am still on 5.24.5, 5.24.90 is in testing repo;
Comment 12 Bug Janitor Service 2022-06-18 04:35:31 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 13 QuirinBrunner 2022-06-18 08:32:30 UTC
This bug is fixed by plasma-desktop 5.25.