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

From: Daniel Mendler <[email-masked]>
Date: Thu, 30 Jan 2025 16:57:38 +0100

Eli Zaretskii <[email-masked]> writes:

>> From: Daniel Mendler <[email-masked]>
>> Cc: [email-masked]
>> Date: Thu, 30 Jan 2025 14:53:01 +0100
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> 
>> >> Date: Fri, 17 Jan 2025 12:15:22 +0100
>> >> From:  Daniel Mendler via "Bug reports for GNU Emacs,
>> >>  the Swiss army knife of text editors" <[email-masked]>
>> >> 
>> >> I've found the following backtrace in my .xsession-errors file. It seems
>> >> that Emacs is somehow crashing during shutdown. So maybe the problem is
>> >> not really about restart, but about some redisplay problem happening
>> >> during shutdown.
>> >> 
>> >> X protocol error: BadDrawable (invalid Pixmap or Window parameter) on protocol request 62
>> >> Serial no: 6422
>> >> Failing resource ID (if any): 0x60014c
>> >> Minor code: 0
>> >> This is a bug!  Please report this to [email-masked]!
>> >
>> > So please run Emacs under GDB, and in X synchronous mode (see
>> > etc/DEBUG for details), and when it crashes during shutdown, show the
>> > full backtrace produced by GDB (the "thread apply all bt" command when
>> > GDB kicks in).
>> >
>> > I think I understand what causes this problem, but more detailed
>> > backtrace is needed to make sure my understanding is correct and the
>> > solution is right.
>> 
>> 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.

> 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?

Daniel