Subject: Re: bug#75629: 30.0.93; restart-emacs does not reliably restart Emacs

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Jan 2025 18:36:39 +0200

> From: Daniel Mendler <[email-masked]>
> Cc: Po Lu <[email-masked]>,  [email-masked]
> Date: Thu, 30 Jan 2025 16:57:38 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> I am sorry, but I failed to obtain a more detailed backtrace. The
> >> problem does not seem to occur at all with (x-synchronize t). Also I
> >> have difficulties running gdb from the .xsession. In my case, Emacs is
> >> started by X, since it acts as window manager. When Emacs crashes after
> >> M-x restart-emacs (without x-synchronize), I cannot access the gdb repl.
> >
> > Can you use the recipe in the node "Crashing" of the Emacs manual to
> > produce a readable backtrace from what you have in .xsession-errors?
> > If thyat succeeds, please post the backtreace.
> 
> So far no success due to lack of debug info. I have to rebuild Emacs.

OK, please do, I think it will help to have a usable backtrace.

> > And maybe Po Lu (CC'ed) has some advice how to debug this further?  Or
> > why redisplay_preserve_echo_area signals a BadDrawable error in this
> > case?  Can we do something (like set some C variable or bind some Lisp
> > variable) to prevent fatal X errors in redisplay when we are shutting
> > down Emacs?
> 
> Would it be possible to first delete all remaining frames before
> proceeding with the shutdown?

That'd be worse, I think.  The problem happens in kill-emacs-hook,
which In your case shuts down the server process, but in general could
ask the user some question, see run-hook-query-error-with-timeout.  If
we don't have a frame, we cannot ask.