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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 14 Jul 2022 08:39:54 +0300

> From: Po Lu <[email-masked]>
> Cc: Visuwesh <[email-masked]>,  [email-masked]
> Date: Thu, 14 Jul 2022 09:04:49 +0800
> 
> 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.

The reason seems to be that the selected-frame wasn't changed to be a
valid usable frame.

But I wonder how the above is different from simply crashing.