Summary: | New implementation of _XSend() results in Fatal IO error 11. | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Alexey Smirnov <betatester> | ||||
Component: | Lib/Xlib | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | RESOLVED NOTABUG | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | xcb | ||||
Version: | 7.4 (2008.09) | ||||||
Hardware: | x86 (IA32) | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
There may be an Xlib bug here, but your test program is wrong, so I'm not convinced. You can't send a request without using one of the GetReq family of macros in Xlib. When I fix your test program to use GetReq instead of _XSend, it completes successfully. Your IO error did not occur in _XSend; it occurred in _XReply, because you didn't send a valid request, so we couldn't find the reply to return. XCB is a bit stricter about correctness here than Xlib is, but I've never seen real code get this wrong. |
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.
Created attachment 30383 [details] _XSend()/_XReply() example, that describes the problem. New implementation of _XSend() function provided in XLib 1.2.xx is not working the same style as in Xlib 1.1.xx. Small get_version.c file attached describes the problem. The source code shown in this file tries to receive version information from any typical extension running on X Server. For example - from "DOUBLE-BUFFER" extension. Extension is checked for availability and for Major Event Number using XQueryExtension() function. The request is filled and is sent using _XSend() function. The results are received using _XReply() function. The results are printed using printf() function. This example is definitely working in XOrg Server 7.2 with XLib 1.1.5, and is producing 'XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"' in XOrg Server 7.2 with XLib 1.2.2. It is no matter what Extension to test. get_version.c can be modified for any other Extension that have QueryVersionReq/QueryVersionReply structures and appropriate request number published. The result will be the same - working with XLib 1.1.xx and IO error with XLib 1.2.xx.