Summary: | xcb_io.c: synchronization problem | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Rami Ylimaki <rami.ylimaki> | ||||
Component: | Lib/Xlib | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | VERIFIED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | rami.ylimaki, xcb | ||||
Version: | git | ||||||
Hardware: | Other | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Rami Ylimaki
2010-04-12 00:44:57 UTC
Created attachment 34905 [details] test case Adding xcb@lists.freedesktop.org into CC. Thanks for the test case! It made the bug pretty easy to track down. I've pushed a fix to libX11 git. It looks like this has indeed been broken in every XCB-enabled release of libX11 ever. Oops. ...I blame keithp. ;-) After applying the fix, I found that the test program hangs in XCloseDisplay on the data_disp connection, waiting for the server to respond to an XSync. I had to insert "XRecordDisableContext (ctrl_disp, rc);" before that to get it to exit successfully. Is that expected? I'm not sure how Record is supposed to work. (In reply to comment #2) > Thanks for the test case! It made the bug pretty easy to track down. I've > pushed a fix to libX11 git. It looks like this has indeed been broken in every > XCB-enabled release of libX11 ever. Oops. ...I blame keithp. ;-) > > After applying the fix, I found that the test program hangs in XCloseDisplay on > the data_disp connection, waiting for the server to respond to an XSync. I had > to insert "XRecordDisableContext (ctrl_disp, rc);" before that to get it to > exit successfully. Is that expected? I'm not sure how Record is supposed to > work. Thanks for fixing it so quickly. You are right, the test case had a bug and XRecordDisableContext call should be there. The original test case had that call but I removed it when trying to minimize it. It's also possible to make the test case work without XRecordDisableContext by executing XCloseDisplay (ctrl_disp); XCloseDisplay (data_disp); instead of XCloseDisplay (data_disp); XCloseDisplay (ctrl_disp); at the end of the case. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.