[Bug: 21.4.21] Bad Window

Rodney Sparapani rsparapa at mcw.edu
Fri Nov 30 15:44:55 EST 2007


Glynn Clements wrote:
> Rodney Sparapani wrote:
>> It just happened again, but this time, it didn't die.  The first error
>> message is the same, the second is different:
>>
>> X Error of failed request:  BadWindow (invalid Window parameter)
>>    Major opcode of failed request:  18 (X_ChangeProperty)
>>    Resource id in failed request:  0x681655
>>    Serial number of failed request:  6539403
>>    Current serial number in output stream:  6539405
>> X Error of failed request:  BadWindow (invalid Window parameter)
>>    Major opcode of failed request:  25 (X_SendEvent)
>>    Resource id in failed request:  0x681655
>>    Serial number of failed request:  6539404
>>    Current serial number in output stream:  6539405
> 
> A BadWindow error for XChangeProperty() followed by one for
> XSendEvent(), with consecutive serial numbers and identical window
> IDs.
> 
> That *has* to be this code in x_reply_selection_request() in
> select-x.c:
> 
>       XChangeProperty (display, window, reply.property, type, format,
> 		       PropModeReplace, data, size);
>       /* At this point, the selection was successfully stored; ack it. */
>       XSendEvent (display, window, False, 0L, (XEvent *) &reply);
> 
> However, the "window" variable is taken from the "requestor" field of
> a SelectionRequest event.
> 
> IOW, an external program sends XEmacs a SelectionRequest event with a
> bogus window ID, and Xlib complains when XEmacs tries to reply to the
> (non-existent) requestor.
> 
> This has to be a bug in an external program, and there are limits to
> what XEmacs can do about it.
> 
> I don't think that it can prevent Xlib from throwing the error. AFAIK,
> there isn't any way to test whether a particular XID is valid (other
> than trying to use it and seeing if an error occurs).
> 
> It's possible that there are bugs in the handling of X errors. At
> least one such bug was fixed in the 21.4 series (the error handler was
> calling into lisp which called into Xlib, which isn't allowed).
> 

Ooh, I've just found an earlier thread that is eerily similar about 
21.4.12 in which Glynn was also involved at 
http://calypso.tux.org/pipermail/xemacs-beta/2004-November/003563.html

It mentions an even earlier discussion that I can't seem to track down
at the broken link
http://list-archive.xemacs.org/xemacs-beta/200309/msg00056.html

I'm assuming you would translate that into the modern address 
http://calypso.tux.org/pipermail/xemacs-beta/2003-September/00056.html
however, it's not there either.

In any case, the suggested solution is:
     (setq interprogram-cut-function nil)
     (setq interprogram-paste-function nil)

If you don't hear from me again, this fixes it.

Rodney



More information about the XEmacs-Beta mailing list