Re: Bug#490601: fails with many xio errors when started from xdm

Ben Hutchings <ben-/[email protected]>
Newsgroups gmane.comp.window-managers.ion.general
Message-ID <[email protected]>
I got a report of a weird and unreproducible error in Ion3 startup:
http://bugs.debian.org/490601

BadMatch is not a documented error code for XGetWindowProperty which
sends X_GetProperty requests.  However, the implementation in Xorg
appears to return BadMatch if and only if it's passed a reference to a
drawable that isn't a window:
http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=blob;hb=8822110d7d6b684f373fc883aeb7cab9734e9ddb;f=dix/dixutils.c#l197

I don't understand how the server coordinates window changes with the
WM.  Is it possible that a window can be completely deleted before the
WM has handled it?  In that case there is presumably a race condition
where a window could disppear and another drawable be created with the
same id.

This seems like a bug in Xorg, but we presumably need to work around it.
The obvious patch is below.

Ben.

--- ion3.orig/ioncore/rootwin.c
+++ ion3/ioncore/rootwin.c
@@ -58,10 +58,11 @@
     static char msg[128], request[64], num[32];
     
     /* Just ignore bad window and similar errors; makes the rest of
-     * the code simpler.
+     * the code simpler.  Due to a Xorg bug, window lookups may fail
+     * with BadMatch instead of BadWindow.
      */
     if((ev->error_code==BadWindow ||
-        (ev->error_code==BadMatch && ev->request_code==X_SetInputFocus) ||
+        ev->error_code==BadMatch ||
         (ev->error_code==BadDrawable && ev->request_code==X_GetGeometry)) &&
        ignore_badwindow)
         return 0;
--- END ---

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQBIg9Gk79ZNCRIGYgcRAtPoAKC3keZDxZ0Wb6N4S0SEflfGhyPcGwCdELRP
aurZcUvGxCPtmNlSMOFp6UQ=
=Hle7
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.