[Xcb] [Bug 29599] hang in xcb_request_check() due to expecting a reply on void request

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 24 12:59:51 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=29599

--- Comment #8 from Havoc Pennington <hp at pobox.com> 2010-08-24 12:59:51 PDT ---
Looking at a sample hang again, and I happen to have XCB full of debug
logging...

during the hang,

request_expected = 8493, request_read = 8492, request_completed = 8491

3  0x00a42752 in xcb_wait_for_reply (c=0x9d0a198, request=8492, e=0xbfb6419c)
at xcb_in.c:512

i.e. wait_for_reply is blocking on 8492

some of my debug logging was:
       PAINT: GOT X REPLY 8486
       PAINT: EXPECTING X REPLY SEQ 8488
       PAINT: 0 bytes buffered out
       PAINT: GOT X REPLY 8488
       PAINT: xcb_writev request 8489
       PAINT: first of 1 requests opcode 148 minor_opcode 1
       PAINT: 0 bytes buffered out
       PAINT: xcb_writev request 8490
       PAINT: first of 1 requests opcode 148 minor_opcode 142
       PAINT: 20464 bytes buffered out
       PAINT: EXPECTING X REPLY SEQ 8491
       PAINT: EXPECTING X REPLY SEQ 8492
       PAINT: 216 bytes buffered out
       PAINT: GOT X REPLY 8491

ignore "PAINT" that is just what I'm debugging. "bytes buffered out" is number
of bytes in the outgoing kernel buffer on the socket, ioctl(SIOCOUTQ). GOT X
REPLY is in read_packet. EXPECTING X REPLY is _xcb_in_expect_reply.

I'll add some logging to flush and at the start of request_check and see if I
can reproduce again. (My test case is "run huge app and do stuff for a while"
so it's a little tricky.)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the Xcb mailing list