Subject: Re: 25.1.50; Another crash in automatic gc

From: Eli Zaretskii <[email-masked]>
Date: Sat, 22 Oct 2016 17:13:14 +0300

> From: Michael Heerdegen <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 22 Oct 2016 15:54:40 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Your marker pointers are actually full of blank (and other ASCII)
> > characters.  So some code somewhere either writes past the end of some
> > stack-based array or otherwise overwrites the stack.
> >
> > Or maybe your system, too, uses ralloc.c, and this is one more
> > manifestation of some buffer or string relocated while some code hangs
> > to the C pointers of the original contents.
> 
> How can I find out?

If you ralloc.o in your src/ directory, your build uses ralloc.c.
Whether ralloc.c's relocations are related to this bug will become
clear eventually when this bug's root cause is discovered; finding
that out is part of the job.

> My code does the following: open tons of elisp files, read all top level
> expressions, and walk the expressions to create a huge list of all the
> buffer's atoms, one per buffer, look at it, and discard it, and continue
> with the next file etc.

What the code does is not important, because Lisp code cannot possibly
cause such problems, only trigger existing problems in the C code.

> > > Repository revision: bfd1abf5c8edf571e9ba272ec2587b964ba86102
> >
> > There's no such revision SHA1 in the Emacs repository, so I'm not sure
> > what code base you are using there.
> 
> That's one commit above emacs-25's current HEAD: the WIP commit for
> making sort-line accepting a predicate arg.  I can revert it just to be
> sure.  But I'm not even convinced that the stuff I suspect is really the
> culprit.

It isn't.  I asked because I wasn't sure the emacs-25 branch is the
code you are running.  Now we know.