Bug 423133

Summary: Kwin Crash caused by using persistant window on multiple desktops
Product: [Plasma] kwin Reporter: Zubin Choudhary <zchoudhary.10>
Component: effects-desktop-gridAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: nate
Priority: NOR Keywords: drkonqi
Version: 5.18.5   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=401422
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Zubin Choudhary 2020-06-18 06:22:57 UTC
Application: kwin_x11 (5.18.5)

Qt Version: 5.14.2
Frameworks Version: 5.70.0
Operating System: Linux 5.6.18-300.fc32.x86_64 x86_64
Windowing system: X11
Distribution: Fedora 32 (KDE Plasma)

-- Information about the crash:
- Steps to reproduce the bug:

 1. connect the system to an extarnal monitor
 2. Open a window on one of the display (preferably the secondary one)
 3. Mark the window to be shown on all desktops
 4. Open another window on each desktop on the primary display (no need to mark them for all desktops)
 5. Try adding a new window

This should crash the kwin system. I can reproduce it almost 100%
Another issue it causes is that once the system crashes, the desktop grid window doesn't resize to a smaller window if I delete the recently added window. (it keeps the width to the maximum number of windows)

- Custom settings of the application:
I have installed NO kwin scripts at all,  this is pure vanilla desktop.

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_x11), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f41c0c8b940 (LWP 18090))]

Thread 13 (Thread 0x7f40ef6be700 (LWP 18818)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41c652fdab in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /lib64/libQt5Core.so.5
#2  0x00007f41c55e8bc2 in QSGRenderThread::processEventsAndWaitForMore() () from /lib64/libQt5Quick.so.5
#3  0x00007f41c55eb109 in QSGRenderThread::run() () from /lib64/libQt5Quick.so.5
#4  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 12 (Thread 0x7f40effff700 (LWP 18817)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41c652fdab in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /lib64/libQt5Core.so.5
#2  0x00007f41c55e8bc2 in QSGRenderThread::processEventsAndWaitForMore() () from /lib64/libQt5Quick.so.5
#3  0x00007f41c55eb109 in QSGRenderThread::run() () from /lib64/libQt5Quick.so.5
#4  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 11 (Thread 0x7f40f555f700 (LWP 18816)):
#0  0x00007f41c66eda68 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#1  0x00007f41c6707f6a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#2  0x00007f41c66bd91b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#3  0x00007f41c6529427 in QThread::exec() () from /lib64/libQt5Core.so.5
#4  0x00007f41c528e1e9 in QQmlThreadPrivate::run() () from /lib64/libQt5Qml.so.5
#5  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#6  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#7  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7f40f79d5700 (LWP 18815)):
#0  0x00007f41c7c20c6e in ppoll () from /lib64/libc.so.6
#1  0x00007f41c6706e49 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib64/libQt5Core.so.5
#2  0x00007f41c67081c3 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#3  0x00007f41c66bd91b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007f41c6529427 in QThread::exec() () from /lib64/libQt5Core.so.5
#5  0x00007f41c528e1e9 in QQmlThreadPrivate::run() () from /lib64/libQt5Qml.so.5
#6  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#7  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7f41a35bf700 (LWP 18339)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41c6031f6c in QTWTF::TCMalloc_PageHeap::scavengerThread() () from /lib64/libQt5Script.so.5
#2  0x00007f41c6031f9f in QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /lib64/libQt5Script.so.5
#3  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7f4192a9c700 (LWP 18287)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41a1cbf1db in util_queue_thread_func () from /usr/lib64/dri/iris_dri.so
#2  0x00007f41a1cbecab in impl_thrd_routine () from /usr/lib64/dri/iris_dri.so
#3  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f419329d700 (LWP 18286)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41a1cbf1db in util_queue_thread_func () from /usr/lib64/dri/iris_dri.so
#2  0x00007f41a1cbecab in impl_thrd_routine () from /usr/lib64/dri/iris_dri.so
#3  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f41a0e5a700 (LWP 18285)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41a1cbf1db in util_queue_thread_func () from /usr/lib64/dri/iris_dri.so
#2  0x00007f41a1cbecab in impl_thrd_routine () from /usr/lib64/dri/iris_dri.so
#3  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f41a165b700 (LWP 18284)):
#0  0x00007f41c5b41e92 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f41a1cbf1db in util_queue_thread_func () from /usr/lib64/dri/iris_dri.so
#2  0x00007f41a1cbecab in impl_thrd_routine () from /usr/lib64/dri/iris_dri.so
#3  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f41b0921700 (LWP 18253)):
#0  0x00007f41c7c20c6e in ppoll () from /lib64/libc.so.6
#1  0x00007f41c6706e49 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib64/libQt5Core.so.5
#2  0x00007f41c67081c3 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#3  0x00007f41c66bd91b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007f41c6529427 in QThread::exec() () from /lib64/libQt5Core.so.5
#5  0x00007f41c528e1e9 in QQmlThreadPrivate::run() () from /lib64/libQt5Qml.so.5
#6  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#7  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f41b2da0700 (LWP 18143)):
#0  0x00007f41c7c20c6e in ppoll () from /lib64/libc.so.6
#1  0x00007f41c6706e49 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib64/libQt5Core.so.5
#2  0x00007f41c67081c3 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#3  0x00007f41c66bd91b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007f41c6529427 in QThread::exec() () from /lib64/libQt5Core.so.5
#5  0x00007f41c769a51b in QDBusConnectionManager::run() () from /lib64/libQt5DBus.so.5
#6  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#7  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f41b3a4d700 (LWP 18130)):
#0  0x00007f41c7c20b6f in poll () from /lib64/libc.so.6
#1  0x00007f41c644538a in _xcb_conn_wait () from /lib64/libxcb.so.1
#2  0x00007f41c644771a in xcb_wait_for_event () from /lib64/libxcb.so.1
#3  0x00007f41b3badc78 in QXcbEventQueue::run() () from /lib64/libQt5XcbQpa.so.5
#4  0x00007f41c652a690 in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007f41c5b3b432 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f41c7c2b9d3 in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f41c0c8b940 (LWP 18090)):
[KCrash Handler]
#4  0x00007f41c7b66a25 in raise () from /lib64/libc.so.6
#5  0x00007f41c7b4f895 in abort () from /lib64/libc.so.6
#6  0x00007f41c62e6961 in __gnu_cxx::__verbose_terminate_handler() [clone .cold] () from /lib64/libstdc++.so.6
#7  0x00007f41c62f242c in __cxxabiv1::__terminate(void (*)()) () from /lib64/libstdc++.so.6
#8  0x00007f41c62f2497 in std::terminate() () from /lib64/libstdc++.so.6
#9  0x00007f41c62f2749 in __cxa_throw () from /lib64/libstdc++.so.6
#10 0x00007f41c64f4e19 in qBadAlloc() () from /lib64/libQt5Core.so.5
#11 0x00007f41c64f74b2 in QListData::detach(int) [clone .cold] () from /lib64/libQt5Core.so.5
#12 0x00007f41c619d03c in QList<KWin::EffectWindow*>::detach_helper(int) () from /lib64/libkwin4_effect_builtins.so.1
#13 0x00007f41c619d16c in QHash<KWin::EffectWindow*, KWin::WindowMotionManager::WindowMotion>::keys() const () from /lib64/libkwin4_effect_builtins.so.1
#14 0x00007f41c619438b in KWin::DesktopGridEffect::slotWindowGeometryShapeChanged(KWin::EffectWindow*, QRect const&) () from /lib64/libkwin4_effect_builtins.so.1
#15 0x00007f41c66edf76 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#16 0x00007f41c595d88b in KWin::EffectsHandler::windowGeometryShapeChanged(KWin::EffectWindow*, QRect const&) () from /lib64/libkwineffects.so.12
#17 0x00007f41c66edf76 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#18 0x00007f41c78bfd3b in KWin::Toplevel::geometryShapeChanged(KWin::Toplevel*, QRect const&) () from /lib64/libkwin.so.5
#19 0x00007f41c7a1e530 in KWin::X11Client::updateShape() () from /lib64/libkwin.so.5
#20 0x00007f41c7a2da38 in KWin::X11Client::setFrameGeometry(int, int, int, int, KWin::AbstractClient::ForceGeometry_t) () from /lib64/libkwin.so.5
#21 0x00007f41c78e44f3 in KWin::AbstractClient::blockGeometryUpdates(bool) () from /lib64/libkwin.so.5
#22 0x00007f41c7a2f5fe in KWin::X11Client::changeMaximize(bool, bool, bool) () from /lib64/libkwin.so.5
#23 0x00007f41c78e5dc6 in KWin::AbstractClient::checkWorkspacePosition(QRect, int, QRect) () from /lib64/libkwin.so.5
#24 0x00007f41c7a10eac in KWin::Workspace::updateClientArea(bool) () from /lib64/libkwin.so.5
#25 0x00007f41c66edfb0 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#26 0x00007f41c78bf550 in KWin::VirtualDesktopManager::countChanged(unsigned int, unsigned int) () from /lib64/libkwin.so.5
#27 0x00007f41c79fa8b7 in KWin::VirtualDesktopManager::setCount(unsigned int) () from /lib64/libkwin.so.5
#28 0x00007f41c66edf76 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#29 0x00007f41c66edfb0 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#30 0x00007f41c51e8be5 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () from /lib64/libQt5Qml.so.5
#31 0x00007f41c5237625 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () from /lib64/libQt5Qml.so.5
#32 0x00007f41c512d2f8 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () from /lib64/libQt5Qml.so.5
#33 0x00007f41c512f7e2 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from /lib64/libQt5Qml.so.5
#34 0x00007f41c515cf0e in QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value const&, unsigned int, QV4::Value*, int) () from /lib64/libQt5Qml.so.5
#35 0x00007f40f7a7e7ad in ?? ()
#36 0x0000000000000000 in ?? ()
[Inferior 1 (process 18090) detached]

Possible duplicates by query: bug 423132, bug 422899, bug 422689, bug 422558, bug 422533.

Reported using DrKonqi
Comment 1 Zubin Choudhary 2020-06-18 06:38:28 UTC
Hey, Sorry, I just realised something looking at the bug report, It has nothing to do with the dual monitor, or multiple displays, instead it's something to do with the maximize function ``` changeMaximize ```.

you can also reproduce the bug with maximizing a window and adding a bunch of new virtual desktops.
Comment 2 Nate Graham 2021-03-17 22:42:01 UTC

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