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 +0000 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 0x7f88fffff6c0 (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)]
<lots of "Downloading separate debug info" here>
[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.
0x00007f89736784fb in QQmlNotifier::emitNotify (endpoint=<optimized out>,
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  0x00007f8971899f0e 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  0x00007f8971899f8f 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  0x00007f897189c7a0 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  0x00007f8969719f8e in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007f89696c9f8c in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007f8969719ebc in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007f897189d44b in start_thread (arg=<optimized out>) at
pthread_create.c:444
#9  0x00007f8971920e40 in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 32 (Thread 0x7f89217fa6c0 (LWP 68154) "kwin_way:gdrv0"):
#0  0x00007f8971899f0e in __futex_abstimed_wait_common64 (private=0,
cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55d4fd220260) at
futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55d4fd220260,
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  0x00007f8971899f8f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x55d4fd220260, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#3  0x00007f897189c7a0 in __pthread_cond_wait_common (abstime=0x0, clockid=0,
mutex=0x55d4fd220208, cond=0x55d4fd220238) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55d4fd220238, mutex=0x55d4fd220208) at
pthread_cond_wait.c:618
#5  0x00007f8969719f8e in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007f89696c9f8c in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007f8969719ebc in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007f897189d44b in start_thread (arg=<optimized out>) at
pthread_create.c:444
#9  0x00007f8971920e40 in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 31 (Thread 0x7f8920ff96c0 (LWP 68153) "kwin_way:gdrv0"):
#0  0x00007f8971899f0e in __futex_abstimed_wait_common64 (private=0,
cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55d4fcb62910) at
futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55d4fcb62910,
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  0x00007f8971899f8f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x55d4fcb62910, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#3  0x00007f897189c7a0 in __pthread_cond_wait_common (abstime=0x0, clockid=0,
mutex=0x55d4fcb628b8, cond=0x55d4fcb628e8) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55d4fcb628e8, mutex=0x55d4fcb628b8) at
pthread_cond_wait.c:618
#5  0x00007f8969719f8e in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007f89696c9f8c in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007f8969719ebc in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007f897189d44b in start_thread (arg=<optimized out>) at
pthread_create.c:444
#9  0x00007f8971920e40 in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 30 (Thread 0x7f88feffd6c0 (LWP 68104) "kwin_wayla:sh1"):
#0  0x00007f8971899f0e in __futex_abstimed_wait_common64 (private=0,
cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55d4faed1b78) at
futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55d4faed1b78,
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  0x00007f8971899f8f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x55d4faed1b78, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#3  0x00007f897189c7a0 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  0x00007f8969719f8e in  () at /usr/lib/dri/radeonsi_dri.so
#6  0x00007f89696c9f8c in  () at /usr/lib/dri/radeonsi_dri.so
#7  0x00007f8969719ebc in  () at /usr/lib/dri/radeonsi_dri.so
#8  0x00007f897189d44b in start_thread (arg=<optimized out>) at
pthread_create.c:444
#9  0x00007f8971920e40 in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 27 (Thread 0x7f89237fe6c0 (LWP 67702) "QQmlThread"):
#0  0x00007f8971913c0f in __GI___poll (fds=Python Exception <class
'gdb.MemoryError'>: Cannot access memory at address 0x7f89237fdae8
#1  0x00007f897016cc2f in g_main_context_poll (priority=<optimized out>,
n_fds=1, fds=0x7f8914001040, timeout=<optimized out>, context=0x7f89140098f0)
at ../glib/glib/gmain.c:4584
#2  g_main_context_iterate.isra.0 (context=0x7f89140098f0, context@entry=<error
reading variable: Cannot access memory at address 0x7f89237fdb78>,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../glib/glib/gmain.c:4271
#3  0x00007f897010d0e2 in g_main_context_iteration (context=<error reading
variable: Cannot access memory at address 0x7f89237fdb78>, may_block=1) at
../glib/glib/gmain.c:4343
#4  0x00007f89728eb15c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7f8914005d10, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f897289b004 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f89237fdca0,
flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69

Thread 11 (Thread 0x7f893bfff6c0 (LWP 63255) "QQmlThread"):
Couldn't get registers: 没有那个进程.
A debugging session is active.

        Inferior 1 [process 63129] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
[Inferior 1 (process 63129) detached]
```

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to