[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 Vlad Zagorodniy changed: What|Removed |Added Status|CONFIRMED |RESOLVED Version Fixed In||5.14.4 Resolution|--- |FIXED Latest Commit||https://commits.kde.org/kwi ||n/406b70b04e093c13faf763e2d ||885797ae037d806 --- Comment #8 from Vlad Zagorodniy --- Git commit 406b70b04e093c13faf763e2d885797ae037d806 by Vlad Zagorodniy. Committed on 13/11/2018 at 08:28. Pushed by vladz into branch 'Plasma/5.14'. [wayland] Don't crash when resizing windows Summary: If you resize a decorated client by using the resize user action(press Alt + F3 > More Actions > Resize), then KWin will crash because it gets stuck in an infinite loop (AbstractClient::performMoveResize <-> ShellClient::setGeometry). Here's how KWin gets stuck in that loop: * when you finish resizing the client, AbstractClient::keyPressEvent will call AbstractClient::finishMoveResize; * the first thing that finishMoveResize does is block geometry updates, then it does some clean up (e.g. reset the value of isMoveResize(), etc), updates the geometry of the client and when it's done, it will emit clientFinishUserMoveResized signal; * when PointerInputRedirection notices that signal, it will call processDecorationMove on the client, which in its turn will indirectly call AbstractClient::startMoveResize; * when it's time to go back to AbstractClient::keyPressEvent, geometry updates are unblocked and if there are any pending geometry updates, then ShellClient::setGeometry will be called; * ShellClient::setGeometry will eventually call ShellClient::doSetGeometry; * ShellClient::doSetGeometry will call AbstractClient::performMoveResize because AbstractClient::processDecorationMove indirectly called AbstractClient::startMoveResize; * AbstractClient::performMoveResize calls ShellClient::setGeometry; * (at this point, KWin got stuck in the infinite loop) This change swaps setMoveResizePointerButtonDown and finishMoveResize, so processDecorationMove won't indirectly call startMoveResize. FIXED-IN: 5.14.4 Reviewers: #kwin, davidedmundson Reviewed By: #kwin, davidedmundson Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D16846 M +2-2abstract_client.cpp https://commits.kde.org/kwin/406b70b04e093c13faf763e2d885797ae037d806 -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 Nate Graham changed: What|Removed |Added CC||n...@kde.org -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 Patrick Silva changed: What|Removed |Added Severity|normal |crash -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 Vlad Zagorodniy changed: What|Removed |Added Ever confirmed|0 |1 Status|REPORTED|CONFIRMED -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 --- Comment #7 from Patrick Silva --- Crash is still reproducible. activate window resizing mode move cursor to decrease the window size press enter to apply the new window size crash Operating System: Arch Linux KDE Plasma Version: 5.14.2 Qt Version: 5.12.0 beta3 KDE Frameworks Version: 5.51.0 -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 --- Comment #6 from Alexander Mentyu --- I set it in Global Shortcuts -> KWin -> Resize Window. Maybe it could be default for KWin in next releases? -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 David Edmundson changed: What|Removed |Added CC||k...@davidedmundson.co.uk --- Comment #5 from David Edmundson --- There is no default meta+R shortcut. Can you confirm what that shortcut is bound to? >From the trace I would assume it's some kwin script. -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 --- Comment #4 from Dr. Chapatin --- crash reproducible in plasma 5.14 beta on Arch Linux. -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 Dr. Chapatin changed: What|Removed |Added CC||bugsefor...@gmx.com --- Comment #3 from Dr. Chapatin --- I do not use meta+r shortcut but I can reproduce the crash on neon dev unstable. Is this backtrace helpful? aThread 9 (Thread 3764.3789): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x7f57edb87de4 in QTWTF::TCMalloc_PageHeap::scavengerThread ( this=0x7f57ede6dee0 ) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #2 0x7f57edb87e29 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #3 0x7f57f01916ba in start_thread (arg=0x7f57a9985700) at pthread_create.c:333 #4 0x7f57ee4e841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 8 (Thread 3764.3787): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x7f57eedfe5cb in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x2c8b650) at thread/qwaitcondition_unix.cpp:143 #2 QWaitCondition::wait (this=this@entry=0x2c8b420, mutex=mutex@entry=0x2c8b418, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215 #3 0x7f57b2d8603a in FileInfoThread::run (this=0x2c8b408) at fileinfothread.cpp:227 #4 0x7f57eedfd727 in QThreadPrivate::start (arg=0x2c8b408) at thread/qthread_unix.cpp:367 #5 0x7f57f01916ba in start_thread (arg=0x7f57aa987700) at pthread_create.c:333 #6 0x7f57ee4e841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 7 (Thread 3764.3786): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x7f57eedf0fa4 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=, op=0, addr=) at thread/qfutex_p.h:92 #2 QtLinuxFutex::futexWait > (expectedValue=, futex=...) ---Type to continue, or q to quit--- at thread/qfutex_p.h:107 #3 futexSemaphoreTryAcquire_loop (timeout=-1, nn=8589934593, curValue=, u=...) at thread/qsemaphore.cpp:221 #4 futexSemaphoreTryAcquire (timeout=-1, n=1, u=...) at thread/qsemaphore.cpp:264 #5 QSemaphore::acquire (this=this@entry=0x2cd7858, n=n@entry=1) at thread/qsemaphore.cpp:328 #6 0x7f57d554de2a in QtVirtualKeyboard::HunspellWorker::run (this=0x2cd7840) at hunspellworker.cpp:293 #7 0x7f57eedfd727 in QThreadPrivate::start (arg=0x2cd7840) at thread/qthread_unix.cpp:367 #8 0x7f57f01916ba in start_thread (arg=0x7f57b2d79700) at pthread_create.c:333 #9 0x7f57ee4e841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 6 (Thread 3764.3785): #0 0x7f57ee4dc74d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x7f57e575c38c in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f57b8002c70, timeout=, context=0x7f57b8000990) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:4135 #2 g_main_context_iterate (context=context@entry=0x7f57b8000990, block=block@entry=1, dispatch=dispatch@entry=1, self=) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:3835 #3 0x7f57e575c49c in g_main_context_iteration (context=0x7f57b8000990, may_block=may_block@entry=1) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:3901 #4 0x7f57ef01609f in QEventDispatcherGlib::processEvents (this=0x7f57b80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #5 0x7f57eefbd5ba in QEventLoop::exec (this=this@entry=0x7f57c4b14c50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214 #6 0x7f57eedf25e4 in QThread::exec (this=this@entry=0x2c0cf10) at thread/qthread.cpp:525 #7 0x7f57e97a5195 in QQmlThreadPrivate::run (this=0x2c0cf10) at qml/ftw/qqmlthread.cpp:148 #8 0x7f57eedfd727 in QThreadPrivate::start (arg=0x2c0cf10) at thread/qthread_unix.cpp:367 ---Type to continue, or q to quit--- #9 0x7f57f01916ba in start_thread (arg=0x7f57c4b15700) at pthread_create.c:333 #10 0x7f57ee4e841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 5 (Thread 3764.3782): #0 0x7f57ee4dc74d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x7f57e575c38c in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f57b4003070, timeout=, context=0x7f57b4000990) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:4135 #2 g_main_context_iterate (context=context@entry=0x7f57b4000990, block=block@entry=1, dispatch=dispatch@entry=1, self=) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:3835 #3 0x7f57e575c49c in g_main_context_iteration (context=0x7f57b4000990, may_block=may_block@entry=1) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmain.c:3901 #4 0x7f57ef0160bb in QEventDispatcherGlib::processEvents (this=0x7f5
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 --- Comment #2 from Alexander Mentyu --- Thread 14 (Thread 0x7fb221ffb700 (LWP 7060)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x7fb29141a5cb in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x5ad9380) at thread/qwaitcondition_unix.cpp:143 #2 QWaitCondition::wait (this=, mutex=0x2532ca0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:215 #3 0x7fb25d59b78f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #4 0x7fb25d59f868 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #5 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #6 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #7 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #8 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #9 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #10 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #11 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #12 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #13 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () ---Type to continue, or q to quit--- from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #14 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #15 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #16 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #17 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #18 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #19 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #20 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #21 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #22 0x7fb25d59d3e0 in ThreadWeaver::Thread::run() () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #23 0x7fb291419727 in QThreadPrivate::start (arg=0x7fb210003190) at thread/qthread_unix.cpp:367 #24 0x7fb28e2206ba in start_thread (arg=0x7fb221ffb700) at pthread_create.c:333 #25 0x7fb290d2641d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 13 (Thread 0x7fb2227fc700 (LWP 7059)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x7fb29141a5cb in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x5ad9380) at thread/qwaitcondition_unix.cpp:143 #2 QWaitCondition::wait (this=, mutex=0x2532ca0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:215 #3 0x7fb25d59b78f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #4 0x7fb25d59f868 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #5 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #6 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #7 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #8 0x7fb25d59f8c2 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5 #9 0x7fb25d59a9ed in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () from /usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5> -- You are receiving this mail because: You are watching all bug changes.
[kwin] [Bug 397577] Plasma crashing after window resizing with Meta+R shortcut and pressing Enter on Wayland
https://bugs.kde.org/show_bug.cgi?id=397577 --- Comment #1 from Martin Flöser --- Best is to ssh in from another system and attach gdb to KWin. -- You are receiving this mail because: You are watching all bug changes.