XIQueryDevicePointer generates an XIO error

Peter Hutterer peter.hutterer at who-t.net
Sun May 17 23:53:09 PDT 2009


On Sat, May 16, 2009 at 05:11:07PM +0200, Mark Dokter wrote:
> On Thursday 14 May 2009 13:48:30 Peter Hutterer wrote:
> > On Wed, May 13, 2009 at 07:12:42PM +0200, Mark Dokter wrote:
> > > I am playing around with the XI2 stuff and always get an error when using
> > > XIQueryDevicePointer(). The function seems to do what its supposed to and
> > > gives me the pointer coordinates, but as soon as I call it again or
> > > another function like XCloseDisplay() I get an error like this:
> > >
> > > XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server
> > > ":0.0 after 13 requests (12 known processed) with 0 events remaining.
> >
> > this is most likely the  wrong length field in the reply. I just
> > encountered this yesterday with the XIPassiveGrabDevice request and it
> > looks like XIQueryDevicePointer suffers from the same.
> > it's a one-line fix in Xi/querydp.c, change to "rep.length = 2;"
> >
> 
> I tried that. Now I get an assertion:
> 
> xiquery: xcb_io.c:445: _XReply: Assertion `!dpy->xcb->reply_data' failed.
> Aborted
> 
> By the way: XIQueryDevicePointer should return a bool value iirc. I got -112 
> (!?) This behaviour is independent from the rep.length change.
 
I'm surprised you get any value if xcb aborts :)

anyway, fixes pushed, it was a wrong length field in xserver, and wrong
extra data handling in libXi. Please pull both to get the updated version.

Cheers,
  Peter


More information about the xorg-devel mailing list