libx11 version 1.8.4 regression
Package: libx11-6
Version: 2:1.8.4-2
I have frequent fvwm2 window manager crashes due to an assertion in libX11 that causes a SIGABRT and window manager crash. This bug is related to debian bugs #1032984 and #1032379, devuan bugs #751 and #746.
I use a Devuan system, do not use a desktop environment, I just start X by using startx and use the fvwm2 window manager. The message printed from fvwm is:
fvwm: ../../src/xcb_io.c:626: _XAllocID: Assertion 'ret != inval_id' failed.
The problem happens on Devuan as well as Debian installations.
I can reliably crash the window manager by doing some mouse actions in
the root window (minimize, maximize windows, resize windows).
I have reverted the following packages to 1.8.3-3 and no
failures happen any more, even after intensive stress tests:
libx11-6
libx11-data
libx11-dev
libx11-xcb-dev
libx11-xcb1
The problem started to appear after an update to 1.8.4 of libx11, libx11-xcb.
I don't see any commits in the fvwm2 repositories, so it seems something
(perhaps some multithreading stuff) has been changed in the x11 ibraries.
Backtrace of failed fvwm process follows.
Thank you.
Stefan
(gdb) run
Starting program: /usr/bin/fvwm
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after fork from child process 4851]
[Detaching after vfork from child process 4864]
Warning: Arg --fvwm-icons is obsolete and ignored
Python module python-xdg not found.fvwm: ../../src/xcb_io.c:626: _XAllocID: Assertion `ret != inval_id' failed.
Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007ffff6ca9d2f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 0x00007ffff6c5aef2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007ffff6c45472 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007ffff6c45395 in __assert_fail_base
(fmt=0x7ffff6db9a70 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ffff7b75b2a "ret != inval_id", file=file@entry=0x7ffff7b75a9b "../../src/xcb_io.c", line=line@entry=626, function=function@entry=0x7ffff7b75ef0 "_XAllocID") at ./assert/assert.c:92
#5 0x00007ffff6c53df2 in __GI___assert_fail (assertion=0x7ffff7b75b2a "ret != inval_id", file=0x7ffff7b75a9b "../../src/xcb_io.c", line=626, function=0x7ffff7b75ef0 "_XAllocID") at ./assert/assert.c:101
#6 0x00007ffff7b02443 in () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#7 0x00007ffff7e56558 in XRenderCreatePicture () at /usr/lib/x86_64-linux-gnu/libXrender.so.1
#8 0x00007ffff7f9e5b6 in () at /usr/lib/x86_64-linux-gnu/libXft.so.2
#9 0x00007ffff7f9ec95 in XftDrawGlyphs () at /usr/lib/x86_64-linux-gnu/libXft.so.2
#10 0x00007ffff7f9f2ad in XftDrawStringUtf8 () at /usr/lib/x86_64-linux-gnu/libXft.so.2
#11 0x00005555555ff843 in ()
#12 0x00005555555e6dfb in ()
#13 0x00005555555a5fff in ()
#14 0x00005555555a7ba4 in ()
#15 0x0000555555588dba in ()
#16 0x000055555558c4eb in ()
#17 0x000055555558c66c in ()
#18 0x0000555555600189 in ()
#19 0x000055555560020f in ()
#20 0x00007ffff7add9da in XCheckIfEvent () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#21 0x0000555555600b62 in ()
#22 0x0000555555600cb7 in ()
#23 0x000055555558d58a in ()
#24 0x00005555555bfb2f in ()
#25 0x00005555555a92ca in ()
#26 0x00005555555a9bf4 in ()
#27 0x00005555555c7f29 in ()
#28 0x0000555555589d43 in ()
#29 0x000055555558c4eb in ()
#30 0x000055555558c5e4 in ()
#31 0x00005555555674f7 in ()
#32 0x00007ffff6c4618a in __libc_start_call_main (main=main@entry=0x555555565a90, argc=argc@entry=1, argv=argv@entry=0x7fffffffe4d8) at ../sysdeps/nptl/libc_start_call_main.h:58
#33 0x00007ffff6c46245 in __libc_start_main_impl (main=0x555555565a90, argc=1, argv=0x7fffffffe4d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe4c8) at ../csu/libc-start.c:381
#34 0x0000555555568631 in ()
(gdb)