Subject: Re: bug#17411: 24.4.50; emacs_backtrace.txt

From: Eli Zaretskii <[email-masked]>
Date: Mon, 12 May 2014 16:21:59 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: Juanma Barranquero <[email-masked]>, [email-masked]
> Date: Sun, 11 May 2014 23:26:06 -0400
> 
> >> balance_an_interval at intervals.c:436
> >> balance_intervals_internal at intervals.c:509
> >> balance_intervals_internal at intervals.c:506
> > A duplicate of 17340.
> 
> Indeed.  Both seemed to fail the "eassert (LENGTH (i) > 0);" and right
> in the middle of a tree.  I tried to add this assertion everywhere where the
> length of an interval can be changed, so we should never bump into
> a case like the above, because such a non-positive length should have
> been caught by an assertion earlier.
> 
> Evidence shows that I missed some cases, tho.  I'd be interested to see
> the stack trace before we enter GC (in case it's in the middle of some
> interval manipulation, maybe?).

You mean, this one:

   http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17411#8

> It might also be interesting to look at `i' to see whether it's
> hopelessly messed up, or if it looks "incorrect but sanish".

I was unable to convince Drew to run Emacs under GDB and leave the
crashed session running to allow us ask him to look around in the
crashed session.  So I think the only practical way of obtaining this
information is to add eassert's that will tell you which one is it.