xst icon indicating copy to clipboard operation
xst copied to clipboard

xst randomly freezes after reloading

Open tudurom opened this issue 8 years ago • 15 comments

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.

tudurom avatar Jan 08 '17 18:01 tudurom

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.

neeasade avatar Feb 16 '17 19:02 neeasade

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.

tudurom avatar Feb 16 '17 19:02 tudurom

or maybe not. now it works every time with and without the fix

tudurom avatar Feb 16 '17 19:02 tudurom

i was testing with urxvt i'm so dumb

tudurom avatar Feb 16 '17 19:02 tudurom

@tudurom Do you still experience this problem? Just making sure :)

pellettiero avatar Mar 17 '17 16:03 pellettiero

well i switched to urxvt after encountering this problem. Assuming that the code didn't change, the problem should be still there.

tudurom avatar Mar 17 '17 16:03 tudurom

OK then, could you try again with the latest fresh code and report on your findings, please?

Thanks! :D

pellettiero avatar Mar 17 '17 16:03 pellettiero

Yep the problem is not solved.

tudurom avatar Mar 17 '17 17:03 tudurom

Did you try with the edit suggested by @neeasade above?

pellettiero avatar Mar 17 '17 17:03 pellettiero

yep

tudurom avatar Mar 17 '17 17:03 tudurom

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...

pellettiero avatar Mar 17 '17 18:03 pellettiero

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.

actionless avatar Jan 11 '19 17:01 actionless

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

actionless avatar Jan 11 '19 17:01 actionless

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?

actionless avatar Jan 11 '19 17:01 actionless

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

neeasade avatar Mar 28 '22 13:03 neeasade