https://bugs.kde.org/show_bug.cgi?id=472714
Bug ID: 472714
Summary: Custom Tiling hangs when adjusting vertical split
panels' height
Classification: Plasma
Product: kwin
Version: 5.27.6
Platform: unspecified
OS: Linux
Status: REPORTED
Severity: crash
Priority: NOR
Component: Custom Tiling
Assignee: kwin-bugs-n...@kde.org
Reporter: m...@shellwen.com
CC: notm...@gmail.com
Target Milestone: ---
SUMMARY
Custom Tiling will hangs when adjusting vertical split panels' height.
I have followed the instructions and used `qdbus org.kde.KWin /KWin
supportInformation` as requested, and pasted the results on
https://invent.kde.org/-/snippets/2753.
STEPS TO REPRODUCE
1. Use Meta+T to open Custom Tiling
2. Click on "Vertical Split."
3. Drag the vertical split divider to its minimum position
OBSERVED RESULT
The entire screen freezes, and after connecting via SSH and using htop, it is
observed that the kwin_wayland process is occupying almost an entire CPU core.
EXPECTED RESULT
Just work, right?
SOFTWARE/OS VERSIONS
Linux/KDE Plasma:
OS: EndeavourOS
`uname -a`: `Linux ShellWens-Tired 6.4.4-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC
Wed, 19 Jul 2023 19:19:14 + x86_64 GNU/Linux`
KDE Plasma Version: 5.27.6
KDE Frameworks Version: 5.108.0
Qt Version: 5.15.10
Wayland, BTW
ADDITIONAL INFORMATION
After repeated testing by me and several others, the following factors do not
seem to determine the occurrence of the issue:
- Display resolution (known resolutions like 2560 * 1440, 1920 * 1080, and 1366
* 768 all trigger this problem).
- Display scaling (both 100% and 150% scaling have been observed to trigger
this problem).
- Plasma themes.
- Wayland or Xorg
The following factor is likely to determine the occurrence of the issue:
- System language (based on testing, using C and en_US.UTF-8 languages does not
cause this problem, but using zh_CN.UTF-8 and zh_TW.UTF-8 languages does).
The following is the stack trace information I captured. Due to the entire
kwin_wayland process freezing and being unable to generate a crash report, I
chose to use GDB to attach, and after sending a segmentation fault using `kill
-SEGV`, I forcefully terminated the process using `kill -KILL`. Anyway, here is
the GDB output I obtained. If I made any mistakes, please point them out.
```
[Thread 0x7f88fdffb6c0 (LWP 64442) exited]
[Thread 0x7f8921ffb6c0 (LWP 64435) exited]
[Thread 0x7f8922ffd6c0 (LWP 64433) exited]
[Thread 0x7f8928f3b6c0 (LWP 64429) exited]
[Thread 0x7f88f6c0 (LWP 64438) exited]
[Thread 0x7f892973c6c0 (LWP 64428) exited]
[Thread 0x7f8929f3d6c0 (LWP 64427) exited]
[Thread 0x7f8954bfd6c0 (LWP 63254) exited]
[Thread 0x7f88ff7fe6c0 (LWP 64439) exited]
[Thread 0x7f88fe7fc6c0 (LWP 64441) exited]
[Thread 0x7f8923fff6c0 (LWP 64431) exited]
[Thread 0x7f89227fc6c0 (LWP 64434) exited]
[Thread 0x7f88feffd6c0 (LWP 64440) exited]
[Thread 0x7f8920ff96c0 (LWP 64437) exited]
[Thread 0x7f89217fa6c0 (LWP 64436) exited]
[Thread 0x7f89237fe6c0 (LWP 64432) exited]
[New Thread 0x7f89237fe6c0 (LWP 67702)]
[New Thread 0x7f89217fa6c0 (LWP 68102)]
[New Thread 0x7f8920ff96c0 (LWP 68103)]
[New Thread 0x7f88feffd6c0 (LWP 68104)]
[Thread 0x7f89217fa6c0 (LWP 68102) exited]
[Thread 0x7f8920ff96c0 (LWP 68103) exited]
[New Thread 0x7f8920ff96c0 (LWP 68153)]
[New Thread 0x7f89217fa6c0 (LWP 68154)]
[New Thread 0x7f8928fa76c0 (LWP 68155)]
Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
0x7f89736784fb in QQmlNotifier::emitNotify (endpoint=,
a=0x0) at
/usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:105
Downloading source file
/usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp...
105 if (data.disconnectWatch == &data.originalSenderPtr &&
data.originalSenderPtr) {
Thread 33 (Thread 0x7f8928fa76c0 (LWP 68155) "kwin_wayla:sh2"):
#0 0x7f8971899f0e in __futex_abstimed_wait_common64 (private=0,
cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55d4faed1b7c) at
futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55d4faed1b7c,
expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0,
private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x7f8971899f8f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x55d4faed1b7c, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#3 0x7f897189c7a0 in __pthread_cond_wait_common (abstime=0x0, clockid=0,
mutex=0x55d4faed1b20, cond=0x55d4faed1b50) at pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=0x55d4faed1b50, mutex=0x55d4faed1b20) at
pthread_cond_wait.c:618
#5 0x7f8969719f8e in () at /usr/lib/dri/radeonsi_dri.so
#6 0x7f89696c9f8c in () at /usr/lib/dri/radeons