xst
xst copied to clipboard
xst randomly freezes after reloading
I reload them with killall -s USR1 st
.
Almost every time I reload them one of them freezes and has to be killed with kill
because it doesn't respond to X events.
Confirmed, I also experience this intermittently. I believe the issue is the way we trigger redraw when not focused -- https://github.com/neeasade/xst/blob/1df15396883870cc9dfd19cbddc0a88e81849fb2/src/st.c#L4671 will see if removing that reduces ability to reproduce the crash.
I just discovered that if I place the killall
line near the end of my theme switcher script, it never freezes. If I place it near the beginning, it always freezes. I will investigate.
or maybe not. now it works every time with and without the fix
i was testing with urxvt i'm so dumb
@tudurom Do you still experience this problem? Just making sure :)
well i switched to urxvt after encountering this problem. Assuming that the code didn't change, the problem should be still there.
OK then, could you try again with the latest fresh code and report on your findings, please?
Thanks! :D
Yep the problem is not solved.
Did you try with the edit suggested by @neeasade above?
yep
hmm, try sending us a gdb
backtrace (make sure you have installed it):
$ ulimit -c unlimited
$ st
<do the thing>
$ gdb -q $(which st) /path/to/coredump
gdb> bt full
Hope it could tell us something...
wow, i've accidentally caught this issue:
(gdb) bt full
#0 0x00007f96e0a24afc in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
No symbol table info available.
#1 0x00007f96e0d5983b in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#2 0x00007f96e0d59d21 in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#3 0x00007f96e0d59dae in xcb_writev () from /usr/lib/libxcb.so.1
No symbol table info available.
#4 0x00007f96e1028d3f in _XSend () from /usr/lib/libX11.so.6
No symbol table info available.
#5 0x00007f96e10290b1 in _XFlush () from /usr/lib/libX11.so.6
No symbol table info available.
#6 0x00007f96e102bc06 in _XGetRequest () from /usr/lib/libX11.so.6
No symbol table info available.
#7 0x00007f96e100dab2 in XAllocColor () from /usr/lib/libX11.so.6
No symbol table info available.
#8 0x00007f96e100d0cd in XAllocNamedColor () from /usr/lib/libX11.so.6
No symbol table info available.
#9 0x00007f96e0dd0a3c in XftColorAllocName () from /usr/lib/libXft.so.2
No symbol table info available.
#10 0x0000558ce368180d in ?? ()
No symbol table info available.
#11 0x0000558ce368187e in ?? ()
No symbol table info available.
#12 0x0000558ce36858fb in ?? ()
No symbol table info available.
#13 <signal handler called>
No symbol table info available.
#14 0x00007f96e139cbe8 in poll () from /usr/lib/libc.so.6
No symbol table info available.
#15 0x00007f96e0d59630 in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#16 0x00007f96e0d59d21 in ?? () from /usr/lib/libxcb.so.1
No symbol table info available.
#17 0x00007f96e0d59dae in xcb_writev () from /usr/lib/libxcb.so.1
No symbol table info available.
#18 0x00007f96e1028d3f in _XSend () from /usr/lib/libX11.so.6
No symbol table info available.
#19 0x00007f96e10290b1 in _XFlush () from /usr/lib/libX11.so.6
No symbol table info available.
#20 0x00007f96e102bc06 in _XGetRequest () from /usr/lib/libX11.so.6
No symbol table info available.
#21 0x00007f96e0dc53b1 in XRenderChangePicture () from /usr/lib/libXrender.so.1
No symbol table info available.
#22 0x00007f96e0dd6841 in XftDrawSetClip () from /usr/lib/libXft.so.2
No symbol table info available.
#23 0x0000558ce367f84e in ?? ()
No symbol table info available.
#24 0x0000558ce36803f8 in ?? ()
No symbol table info available.
#25 0x0000558ce368440b in ?? ()
No symbol table info available.
#26 0x0000558ce367d483 in ?? ()
No symbol table info available.
#27 0x00007f96e12d0223 in __libc_start_main () from /usr/lib/libc.so.6
No symbol table info available.
#28 0x0000558ce367d4be in ?? ()
No symbol table info available.
which makes sense since that function indeed is running on reload: https://github.com/gnotclub/xst/blob/8519227bcef14712d9eff1c8919a31ef1b629eb7/src/xst.c#L3488
i'll try to dig into this if will get some stable steps to reproduce it
I place the killall line near the end of my theme switcher script, it never freezes
what else are you doing in your script? restarting WM maybe?
some changes that have happened since the last comment here:
https://git.suckless.org/st/commit/1d590910652519268152eae6b97cf30ace4e90c0.html https://git.suckless.org/st/commit/e823e2308f2a99023032a3966ebb7036a31d305f.html
could poke at our reload (change it to a tfulldirt()
) and see how we feel there