Subject: Re: bug#66743: 30.0.50; Crash when dumping reftex

From: Gerd Möllmann <[email-masked]>
Date: Thu, 26 Oct 2023 10:04:19 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Gerd Möllmann <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Thu, 26 Oct 2023 09:03:33 +0200
>> 
>> Gerd Möllmann <[email-masked]> writes:
>> 
>> > Eli Zaretskii <[email-masked]> writes:
>> >
>> >> Emacs is always dumped with a few buffers, because temacs needs them
>> >> to do the dumping.  See this comment text from buffer.c:
>> >>
>> >> 	 Implementation notes: the buffers we carry from temacs are:
>> >> 	 " prin1", "*scratch*", " *Minibuf-0*", "*Messages*", and
>> >> 	 " *code-conversion-work*".  They are created by
>> >> 	 init_buffer_once and init_window_once (which are not called
>> >> 	 in the dumped Emacs), and by the first call to coding.c
>> >> 	 routines.
>> >
>> > Thanks.
>> >
>> > So, one idea would be to try and move the creation of these buffers from
>> > the init_*_once functions to the "normal" init functions, and see what
>> > happens. One would also have to take a closer look at coding.c, of course.
>> 
>> Actually, this is bug#59029, sort of.
>> 
>> TLDR is that the code to dump itrees is there, somewhere in git, but has
>> an infinite recursion bug. So, I guess it should first be tried to
>> revive that code and fix it (tests should also exist, IIUC).
>
> Feel free to do that, of course.

It's only a maybe from me, so far :-). I mainly chimed in because I know
the pdumper from dumping CL packages, and I also know a bit about
itrees.

BTW, it turns out the code is actually already in master
(dump_interval_node), but isn't executed because of the abort.

> However, from where I stand, we should first find and fix the other
> bugs caused by re-dumping, of the kinds described in bugs 66741 and
> 66742 (there are more problems like that).  Ideally, we need to
> understand why these problems happen, and develop a protocol for
> initializing things in a way that avoids such problems.  Only after
> that should we turn our attention to more specific aspects like itrees
> etc.  We should also have some policy for what should never be dumped,
> I think -- those will have to be nullified or deleted before dumping.

Of course.