On 05/20/2014 09:57 AM, Eli Zaretskii wrote: >> From: Stefan Monnier >> Cc: emacs-devel@gnu.org, Fabrice Popineau >> Date: Tue, 20 May 2014 09:44:05 -0400 >> >>> The short version of the question is: is it possible that a Lisp >>> object which is no longer referenced by anything won't be GC'ed >>> because it is marked by mark_stack due to some kind of coincidence? >> >> Yes, of course, it's what makes a conservative marking conservative. > > I have nothing against conservative, but this failure to GC is too > spectacular to ignore. > >>> So the huge hash-table gets dumped into the emacs executable, and >> >> That's bad luck, indeed. >> >>> causes all kinds of trouble in the dumped Emacs. >> >> But it shouldn't cause any trouble (other than extra memory use). > > It does, due to all kinds of subtleties. The result is that the > large_vectors linked list gets dumped with a pointer to a non-existent > memory, and the dumped Emacs then crashes on the first GC when it > tries to traverse that linked list. Can you elaborate on how that happens? This behavior sounds like a plain GC bug.