Subject: 31.0.50; Emacs sometimes crashes

From: Markus Triska <[email-masked]>
Date: Sun, 16 Mar 2025 10:55:35 +0100

Dear all,

while trying to reproduce #76186 with "-nw", I sometimes encounter a
crash. In https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76186#83, Eli
says this is worth a separate report, and so I am filing it here.

To try to reproduce the problem, please download the following file:

    https://www.metalevel.at/ei/recenter_sometimes_not_recentering_nw.el

and then launch Emacs with:

    $ emacs -Q -nw --load recenter_sometimes_not_recentering_nw.el

Leave it running for a while, and then press:

    C-g C-x C-c

Sometimes, but not always, this yields:

    /lib/x86_64-linux-gnu/libc.so.6(+0x28150)[0x7ad890e28150]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89)[0x7ad890e28209]
    emacs(+0x5bab5)[0x57deda682ab5]
    Segmentation fault (core dumped)

A backtrace produced by gdb after the crash is encountered follows.

I hope this helps also as a small step towards resolving #76186.

Thank you and all the best,
Markus

#0  0x000055555575c057 in plist_get (plist=<optimized out>, prop=0x7c20) at fns.c:2621
#1  0x000055555575c347 in Fget (propname=<optimized out>, symbol=<optimized out>) at fns.c:2641
#2  0x0000555555797aa0 in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:1207
#3  0x000055555574a98e in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7ffff35ff370) at eval.c:3069
#4  0x000055555574b002 in Fapply (nargs=2, args=0x7ffff35ff370) at eval.c:2698
#5  0x00005555557962bd in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at /emacs/src/lisp.h:2230
#6  0x000055555574f284 in apply_lambda (fun=<optimized out>, args=<optimized out>, count=count@entry=...) at eval.c:3191
#7  0x000055555574d872 in eval_sub (form=<optimized out>) at eval.c:2663
#8  0x000055555574f501 in Flet (args=<optimized out>) at eval.c:1076
#9  0x000055555574dc1f in eval_sub (form=<optimized out>) at eval.c:2525
#10 0x000055555574f720 in Fprogn (body=<optimized out>) at eval.c:439
#11 Flet (args=<optimized out>) at eval.c:1105
#12 0x000055555574dc1f in eval_sub (form=<optimized out>) at eval.c:2525
#13 0x000055555574ec78 in Fprogn (body=<optimized out>) at eval.c:439
#14 funcall_lambda (fun=fun@entry=0x555555a58bad, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffd1e0) at eval.c:3326
#15 0x000055555574f284 in apply_lambda (fun=<optimized out>, args=<optimized out>, count=count@entry=...) at eval.c:3191
#16 0x000055555574d872 in eval_sub (form=<optimized out>) at eval.c:2663
#17 0x000055555574e8f0 in Fprogn (body=<optimized out>) at eval.c:439
#18 prog_ignore (body=<optimized out>) at eval.c:450
#19 Fwhile (args=<optimized out>) at eval.c:1126
#20 0x000055555574dc1f in eval_sub (form=<optimized out>) at eval.c:2525
#21 0x000055555577762e in readevalloop_eager_expand_eval (val=<optimized out>, val@entry=0x7ffff735dff3, macroexpand=0xae30) at lread.c:2358
#22 0x000055555577efdc in readevalloop (readcharfun=readcharfun@entry=0x555555a585cd, infile0=infile0@entry=0x0, sourcename=sourcename@entry=0x555555a60ae4, printflag=printflag@entry=false, unibyte=unibyte@entry=0x0, readfun=readfun@entry=0x0, start=0x0, end=<optimized out>) at lread.c:2540
#23 0x000055555578024e in Feval_buffer (buffer=<optimized out>, printflag=0x0, filename=0x555555a60ae4, unibyte=0x0, do_allow_print=<optimized out>) at lread.c:2618
#24 0x00005555557962bd in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at /emacs/src/lisp.h:2230
#25 0x000055555574a98e in Ffuncall (nargs=nargs@entry=5, args=args@entry=0x7fffffffd7a0) at eval.c:3069
#26 0x000055555577fe41 in Fload (file=0x555555a59994, noerror=<optimized out>, nomessage=0x30, nosuffix=<optimized out>, must_suffix=<optimized out>) at lread.c:1615
#27 0x00005555557962bd in exec_byte_code (fun=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at /emacs/src/lisp.h:2230
#28 0x000055555574f284 in apply_lambda (fun=<optimized out>, args=<optimized out>, count=count@entry=...) at eval.c:3191
#29 0x000055555574d872 in eval_sub (form=form@entry=0x7ffff49c1153) at eval.c:2663
#30 0x0000555555750083 in Feval (form=0x7ffff49c1153, lexical=<optimized out>) at eval.c:2438
#31 0x00005555557490d7 in internal_condition_case (bfun=bfun@entry=0x5555556b9720 <top_level_2>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556c1c30 <cmd_error>) at eval.c:1602
#32 0x00005555556ba25a in top_level_1 (ignore=ignore@entry=0x0) at keyboard.c:1191
#33 0x0000555555749019 in internal_catch (tag=tag@entry=0x11df0, func=func@entry=0x5555556ba230 <top_level_1>, arg=arg@entry=0x0) at eval.c:1282
#34 0x00005555556b967f in command_loop () at keyboard.c:1140
#35 0x00005555556c17a5 in recursive_edit_1 () at keyboard.c:749
#36 0x00005555556c1b44 in Frecursive_edit () at keyboard.c:832
#37 0x000055555559ebde in main (argc=<optimized out>, argv=0x7fffffffde28) at emacs.c:2560
quit

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw
 scroll bars) of 2025-03-16 built on laptop
Repository revision: db0bed7a68cd2308eba61247a6a77f73533ffef6
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12302000
System Description: Ubuntu 23.10

Configured using:
 'configure --with-gif=ifavailable --with-tiff=ifavailable
 --with-gnutls=ifavailable'

Configured features:
FREETYPE GMP JPEG LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG SECCOMP
SOUND THREADS TOOLKIT_SCROLL_BARS X11 XDBE XFT XIM XPM LUCID ZLIB

Important settings:
  value of $LC_MONETARY: de_DE.UTF-8
  value of $LC_NUMERIC: de_DE.UTF-8
  value of $LC_TIME: de_DE.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix