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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 26 Oct 2023 10:35:23 +0300

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

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.