Subject: Re: bug#56372: 29.0.50; [PATCH] Avoid BadMatch X11 error

From: Po Lu <[email-masked]>
Date: Mon, 04 Jul 2022 09:16:12 +0800

[email-masked] writes:

> With my particular font sizing, I get an X11 BadMatch (invalid parameter
> attributes) error one out of every 10 starts or so.
>
>>>From 95911e85c12e91123ebc4448700f67877b4109cc Mon Sep 17 00:00:00 2001
> From: dickmao <[email-masked]>
> Date: Sun, 3 Jul 2022 10:34:20 -0400
> Subject: [PATCH] Avoid a BadMatch X11 error
>
> x_uncatch_errors() might do a sync that
> x_ignore_errors_for_next_request() doesn't?  The details are unclear.

Where is the error, and what request is generating it?

The X server reports errors asynchronously, the next time Xlib or Emacs
calls XSync after the erroring request is made.

x_ignore_errors_for_next_request and x_stop_ignoring_errors don't call
XSync (unlike the usual error handling and checking functions) -- they
only make a note of the range of requests made inside them, so the
x_error_handler knows that it should ignore the error.  This is done for
speed, since syncing is slow, especially over connections with high
latency.

So assuming the erroring request is actually XSetWindowBorder, please
see why x_error_handler is actually not ignoring the error.

The useless reformatting of code in xfaces.c, is, as usual for patches
from you, unacceptable.