Subject: bug#56528: 29.0.50; Emacs lucid segfaults when X dies

From: Po Lu <[email-masked]>
Date: Thu, 14 Jul 2022 09:04:49 +0800

Eli Zaretskii <[email-masked]> writes:

> That's probably just sheer luck.  When you kill the X server, any code
> in Emacs that tries to display something will crash and burn, because
> there's generally no way for us to display anything in that case.

Not exactly.  When the connection to the X server is lost, any attempt
to communicate with it will result in the IO error handler being called.

We install an error handler that performs the following:

  - Bind `inhibit-redisplay' to t.
  - Delete each frame on the display that went down.
  - Free the display data and delete the terminal.
  - Kill Emacs if no terminals are left.
  - Throw an error to get Emacs out of the error handler.

Unfortunately, that doesn't always work reliably, such as here.  And
we're trying to find out why.