Subject: bug#18457: GC crashes followed by update_syntax_table/interval_of crash

From: David Reitter <[email-masked]>
Date: Fri, 12 Sep 2014 09:05:59 -0400

On Sep 12, 2014, at 4:10 AM, Dmitry Antipov <[email-masked]> wrote:

> On 09/12/2014 07:07 AM, David Reitter wrote:
> 
>> There is a source of a common “args out of range” crash in
>> update_syntax_table/interval_of, secondary to GC exceptions.
> 
> If Emacs is crashed when GC is in progress (usually in mark_object), most
> probably an internal data structures are seriously broken and anything can
> happen.  As for the two stack traces below, the final reason for emacs_abort
> was a call to Fsignal with non-zero gc_in_progress.

I didn’t think this was actionable for the GC crash, for the reasons you state below.

However, the follow-on crash while saving files is pretty regular and should be prevented, because it basically means that the user’s latest edits are lost.

> 2) Compiler optimizations that confuses stack marking code, see:
>   http://lists.gnu.org/archive/html/emacs-diffs/2014-08/msg00024.html
>   Currently we have no regular method to detect these errors.
>   Also see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16986; note that
>   it was observed on OSX, and there is an assumption that clang is more
>   aggressive in such an optimizations rather than gcc.

Yes, and at least for Aquamacs, we’re using aggressive optimization settings (for speed).

- David