wayland: mutter freeze when typing fast
Summary
Mutter often freezes when typing fast in programs running in Xwayland(?).
When it freezed, journalctl -b 0
would show up:
11月 23 23:05:47 Arch-PC gnome-shell[1260]: Key repeat discarded, Wayland compositor doesn't seem to be processing events fast enough!
... repeat many times
SYNC: 1357: Syncing to get 1 GetProperty replies in meta_prop_get_values
STARTUP: Window 0xe00006 has _NET_WM_USER_TIME of 470740
STARTUP: Window 0xe00006 has _NET_WM_USER_TIME of 470746
KEYBINDINGS: No handler found for this event in this binding table
VERBOSE: Property notify on 0xe00006 for _NET_WM_USER_TIME
VERBOSE: Requesting 1 properties of 0xe0003a at once
... repact many times and the _NET_WM_USER_TIME grew up
and when killed that Window
(0xe00006
), mutter returns to normal and gnome-shell was unfreezed. but it would be unstable.
(After returning to gnome-shell and press Ctrl-C in gnome-terminal)
11月 23 23:06:48 Arch-PC gnome-terminal-server[2444]: [3777219.437] wl_pointer@28.motion(727055, 247.054688, 496.839844)
11月 23 23:06:48 Arch-PC gnome-terminal-server[2444]: [3777219.502] wl_pointer@28.frame()
11月 23 23:06:48 Arch-PC gnome-terminal-server[2444]: [3777219.570] wl_callback@44.done(727098)
11月 23 23:06:48 Arch-PC gnome-shell[1260]: [3777267.520] -> wl_keyboard@11.key(1975, 727145, 46, 1)
11月 23 23:06:48 Arch-PC gnome-terminal-server[2444]: [3777269.652] wl_keyboard@11.key(1975, 727145, 46, 1)
11月 23 23:06:48 Arch-PC gdm-password][1183]: pam_unix(gdm-password:session): session closed for user pan93412
11月 23 23:06:48 Arch-PC systemd[1189]: Stopped target GNOME Session is stable (running for >2 minutes).
11月 23 23:06:48 Arch-PC systemd[1189]: gnome-session-stable.timer: Succeeded.
11月 23 23:06:48 Arch-PC systemd[1189]: Stopped GNOME Session is not yet stable (running for <2 minutes).
11月 23 23:06:48 Arch-PC systemd[1189]: Stopped target GNOME Wayland Session (session: gnome).
11月 23 23:06:48 Arch-PC systemd[1189]: Stopped target Current graphical user session.
11月 23 23:06:48 Arch-PC systemd[1189]: Stopped target GNOME Session.
Environment
$ neofetch
-` pan93412@Arch-PC
.o+` ----------------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: 80LK Lenovo B51-30
`+oooooo: Kernel: 5.3.12-arch1-1
-+oooooo+: Uptime: 31 mins
`/:-:++oooo+: Packages: 1508 (pacman)
`/++++/+++++++: Shell: bash 5.0.11
`/++++++++++++++: Resolution: 1366x768
`/+++ooooooooooooo/` DE: GNOME 3.34.1
./ooosssso++osssssso+` WM: Mutter
.oossssso-````/ossssss+` WM Theme: Adwaita
-osssssso. :ssssssso. Theme: Adwaita [GTK2/3]
:osssssss/ osssso+++. Icons: Adwaita [GTK2/3]
/ossssssss/ +ssssooo/- Terminal: gnome-terminal
`/ossssso+/:- -:/+osssso+- CPU: Intel Pentium N3710 (4) @ 2.560GHz
`+sso+:-` `.-/+oso: GPU: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx
`++:. `-/+/ GPU: NVIDIA GeForce 920M
.` `/ Memory: 1735MiB / 3845MiB
$ lspci
00:00.0 Host bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SoC Transaction Register (rev 35)
00:02.0 VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
00:13.0 SATA controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SATA Controller (rev 35)
00:14.0 USB controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series USB xHCI Controller (rev 35)
00:1a.0 Encryption controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Trusted Execution Engine (rev 35)
00:1b.0 Audio device: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series High Definition Audio Controller (rev 35)
00:1c.0 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #1 (rev 35)
00:1c.1 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #2 (rev 35)
00:1c.2 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #3 (rev 35)
00:1c.3 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #4 (rev 35)
00:1f.0 ISA bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCU (rev 35)
00:1f.3 SMBus: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx SMBus Controller (rev 35)
01:00.0 3D controller: NVIDIA Corporation GK208BM [GeForce 920M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
02:00.0 Network controller: Qualcomm Atheros QCA6164 802.11ac Wireless Network Adapter (rev 20)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
Complete logs
- complete-journalctl-logs.txt.gz The log for Key repeat discarded, Ctrl-C Event
- mutter-1251-debug-log-UJ5VB0.gz The log for Window 0xe00006 has _NET_WM_USER_TIME
Steps to reproduce
Prerequisites
-
xf86-video-intel
removed and use themodesetting
driver. - using Arch Linux
- GNOME 3.34.1 (the latest version I could find in Arch)
Name : gnome-shell Version : 1:3.34.1+12+ga43c22e3a-1 Description : Next generation desktop shell
- Mutter 3.34.1 (the latest version I could find in Arch)
Name : mutter Version : 3.34.1+52+g403d8fcc6-1 Description : A window manager for GNOME
-
LANG=zh_TW.UTF-8
andLANGUAGE=zh_TW
- installed
htop
&telegram-desktop
- type in
ibus
&ibus-chewing
Steps
- add the below lines to
/etc/environment
:MUTTER_VERBOSE=1 MUTTER_DEBUG=1 MUTTER_USE_LOGFILE=/tmp/mutterlogs MUTTER_DEBUG_SM=1 MUTTER_DEBUG_BUTTON_GRABS=1 WAYLAND_DEBUG=1
- restart and start GNOME in Wayland mode in gdm
- start
telegram-desktop
- type or move cursor as fast as possible, and it would be freezed soon.
Steps for killing
and when killed that
Window
(0xe00006
)
- switch to any other ttys
- open
htop
- terminate the program (SIQTERM) that might be that
Window
. (for my case it would betelegram-desktop
oribus*
) - Reback the original shell tty