Subject: bug#39577: 27.0.60; Assertion failed during compilation

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Feb 2020 21:23:38 +0200

> Date: Thu, 13 Feb 2020 20:00:16 +0100
> From: Henrik Grimler <[email-masked]>
> Cc: [email-masked]
> 
> > > ../../src/fns.c:2856: Emacs fatal error: assertion failed: !FIXNUM_OVERFLOW_P (lisp_h_make_fixnum_n)
> > 
> > This would mean that the values returned by getloadavg on that system
> > are preposterously large.  Can you run the offending command under a
> > debugger, put a breakpoint on line 2856 of fns.c, and see what values
> > you get in the load_ave[] array?
>  
> It seems to be preposterously small:
> 
> ```
> Breakpoint 2, Fload_average (use_floats=XIL(0)) at ../../src/fns.c:2856
> 2856                              ? make_fixnum (100.0 * load_ave[loads])
> (gdb) print load_ave
> $1 = {2.8900000000000001, 2.8752811112650786e-312, 2.7799999999999998}
> ```
> 
> This android version does not have getloadavg (so I guess
> lib/getloadavg.c is used instead?)

Looks like a bug in getloadavg, but you should be fine replacing that
small value with zero.

> > Can you show a backtrace from the segfault?
> 
> After loading gdbinit from emacs src, starting emacs and scrolling up
> and down a file a couple of times it crashes with:
> 
> ```
> Program received signal SIGSEGV, Segmentation fault.
> 0xb6995228 in sigsetjmp () from /system/lib/libc.so
> ```
> 
> A backtrace then unfortunately only shows:
> 
> ```
> #0  0xb6995228 in sigsetjmp () from /system/lib/libc.so
> #1  0x62e31f80 in ?? ()
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Sounds like sigsetjmp is buggy on that platform?

> It also seems that the segfault does not happen if running inside
> tmux.

Does "inside tmux" mean you run a -nw session?