-
Notifications
You must be signed in to change notification settings - Fork 97
Description
Hello,
I've encountered what appears to be a hang (deadlock?) in JWM, which usually occurs when I try to resize or/and maximize any of Steam's windows. I haven't encountered this in any other app yet, only Steam is affected for me.
This issue is always preceded by (most likely) another bug, where "the blank resize rectangle" persists on the screen and never disappears [see screenshot below], the hang happens shortly after when trying to resize/maximize/activate any window [see video below].
Note that this issue happens only when resizing is done by dragging the window border or corner. Using ResizeMode via "mask" modifier (e.g. holding Alt+Mouse3 and moving the cursor) never causes this issue for me.
Note that Xorg server and other apps keep working just fine, but since JWM is not responding, I cannot click at anything and recover in any way. The only thing I can do in this case is to switch to another vtty (e.g Ctrl+Alt+F2) and pkill Xorg. I also tried killing the Steam or JWM but this doesn't really help.
repro:
- start JWM (in my case, I'm starting rootless Xorg via
startxwhich startsjwmvia$HOME/.xinitrc) - start Steam desktop client
- try to resize Steam's root window by dragging any of its borders/corners
(at this point "the blank resize rectangle" may appear, but JWM may still NOT hang) - go to Library > hover over any game entry (from the list on the left) > right click (Mouse3) > Properties
- try to resize Properties window by dragging any of its borders/corners
(at this point "the blank resize rectangle" may appear, but JWM may still NOT hang) - try to maximize Properties window and try to click at any other window
(at this point JWM always hangs for me)
Note that when I use config from $PREFIX/etc/system.jwmrc, the hang almost always appears at 4th step, but when I use my personal $HOME/.jwmrc I usually need to perform 5 and 6th step. I suspect this is happening because my .jwmrc uses <FocusModel>click</FocusModel> but I'm not sure.
additional info:
- I've tried reproducing this issue on: icewm, i3wm, awesomewm; but it does not occur there. Not sure which one of those WMs use Xlib and which use XCB, but I thought the Xlib ones could also be affected
- I thought this issue was related to Steam's option from:
Settings > Interface > Enable context menu focus compatibility mode; but I was able to reproduce it with and without said option being enabled.
environment:
I installed JWM from https://github.com/joewing/jwm/releases/download/v2.4.6/jwm-2.4.6.tar.xz
I'm on ArchLinux with proprietary Nvidia GPU drivers
$ uname -a
Linux MAL200424 6.16.8-arch3-1 #1 SMP PREEMPT_DYNAMIC Mon, 22 Sep 2025 22:08:35 +0000 x86_64 GNU/Linux
$ jwm -v
JWM v2.4.6 by Joe Wingbermuehle
compiled options: confirm icons jpeg nls pango png shape svg xbm xft xinerama xpm xrender
system configuration: /home/korn/.local/jwm/etc/system.jwmrc
$ pacman -Q xorg-server steam nvidia
xorg-server 21.1.18-2
steam 1.0.0.84-1
nvidia 580.82.09-5
$ cc --version
cc (GCC) 15.2.1 20250813
$ ldd --version
ldd (GNU libc) 2.42attachments:
video
(in this video, you can notice "the blank resize rectangle" appearing at 00:21 right after resizing Steam's root window, and JWM most likely hanging at 00:24 when trying to click at Xterm's window)
2025-10-01_20-55-54.mp4
callstacks
(gdb) thread apply all bt
Thread 2 (LWP 770):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x0000000000000000 in ??? ()
Thread 1 (LWP 757):
#0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007fa1968931ac in __internal_syscall_cancel (a1=a1@entry=4, a2=<optimized out>, a3=a3@entry=0, a4=<optimized out>, a5=a5@entry=140727747017696, a6=a6@entry=0, nr=270) at cancellation.c:49
#2 0x00007fa1968931f4 in __syscall_cancel (a1=a1@entry=4, a2=<optimized out>, a3=a3@entry=0, a4=<optimized out>, a5=a5@entry=140727747017696, a6=a6@entry=0, nr=270) at cancellation.c:75
#3 0x00007fa1969181c1 in __GI___select (nfds=nfds@entry=4, readfds=readfds@entry=0x7ffdbb5efcc0, writefds=writefds@entry=0x0, exceptfds=exceptfds@entry=0x0, timeout=timeout@entry=0x7ffdbb5efc80) at ../sysdeps/unix/sysv/linux/select.c:69
#4 0x0000561dfe6518a3 in WaitForEvent (event=event@entry=0x7ffdbb5efe80) at event.c:124
#5 0x0000561dfe666928 in ResizeClient (np=np@entry=0x561e37414860, context=context@entry=82 'R', startx=<optimized out>, starty=<optimized out>) at resize.c:175
#6 0x0000561dfe6529db in HandleNetWMMoveResize (event=0x7ffdbb5f01d0, np=0x561e37414860) at event.c:1298
#7 HandleClientMessage (event=0x7ffdbb5f01d0) at event.c:1132
#8 WaitForEvent (event=event@entry=0x7ffdbb5f01d0) at event.c:150
#9 0x0000561dfe645408 in EventLoop () at main.c:249
#10 main (argc=<optimized out>, argv=<optimized out>) at main.c:195
EDIT1: fixed few typos and attached Xorg logs
EDIT2: updated description and repro to mention "resizing by dragging the window border/corner" per #660 (comment)
EDIT3: moved a section from #660 (comment) to "additional info"

