[Xcb] libxcb/libX11 deadlocking and asserting in multi-threaded use
jamey at minilop.net
Fri Mar 19 01:42:19 PDT 2010
Nicholas Allen wrote:
> ../../src/xcb_io.c:242: process_responses: Assertion `(((long)
> (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.
This is not the most recent version of libX11, but I think newer
changes shouldn't matter.
There was a bug report recently that had this assertion failure as its
symptom. That turned out to be an X server bug (failure to byte-swap
the sequence number field in certain replies) and it only affected
setups where the client was on a machine with a different endianness
than the server. You're not doing that, are you?
On Fri, Mar 19, 2010 at 1:22 AM, Nicholas Allen
<nick.allen at onlinehome.de> wrote:
> Sorry that code is not complete. I wasn't calling XFlush after mapping
> the window. I'll try to make a more complete version that reproduces
> this bug...
I was just wondering why I didn't see the window mapped when I noticed
you'd sent this mail. :-) Good catch. Of course you also need an
XFlush after each XResizeWindow. Given those changes, I'm not seeing
either a hang or an assertion failure.
Thank you for taking the time to get to a minimal test case, though.
When you've found something that reliably reproduces the bug, it will
help a lot.
More information about the Xcb