Subject: bug#75760: 31.0.50; feature/igc: crash report on Arch Linux, redisplay_internal

From: Oliver Reiter <[email-masked]>
Date: Wed, 22 Jan 2025 14:37:27 +0100

Dear all,

I can report another crash on Arch Linux using feature/igc. Looks
interesting (at least to my layman eyes), as its Lisp Backtrace is just
"redisplay_internal (C function)". I have the coredump, binary and .pdmp
for further inquiry, if necessary.

Thread 1 "emacs" hit Breakpoint 1, terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at /home/reitero/build/sources/emacs/emacs/src/emacs.c:432
432	{
(gdb) bt
#0  terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at /home/reitero/build/sources/emacs/emacs/src/emacs.c:432
#1  0x000055555579f2a8 in set_state (state=<optimized out>) at /home/reitero/build/sources/emacs/emacs/src/igc.c:991
#2  0x0000555555793ee2 in igc_assert_fail (file=<optimized out>, line=<optimized out>, msg=<optimized out>) at /home/reitero/build/sources/emacs/emacs/src/igc.c:276
#3  0x000055555583412c in BufferFill ()
#4  0x0000555555869b60 in amcSegFix ()
#5  0x0000555555803aad in _mps_fix2 ()
#6  0x000055555579c985 in fix_raw (ss=ss@entry=0x7ffffffeecf8, p=p@entry=0x7ffffffeeb70) at /home/reitero/build/sources/emacs/emacs/src/igc.c:1161
#7  0x000055555579ca43 in fix_string (ss=ss@entry=0x7ffffffeecf8, s=s@entry=0x7fffa8c94cc8) at /home/reitero/build/sources/emacs/emacs/src/igc.c:1754
#8  0x00005555557a1a7c in dflt_scan_obj (ss=ss@entry=0x7ffffffeecf8, base_start=base_start@entry=0x7fffa8c94cc8, base_limit=base_limit@entry=0x7fffa8c94cf0, closure=closure@entry=0x0)
    at /home/reitero/build/sources/emacs/emacs/src/igc.c:2021
#9  0x00005555557a1c2f in dflt_scanx (ss=ss@entry=0x7ffffffeecf8, base_start=<optimized out>, base_limit=0x7fffa8c94cf0, closure=closure@entry=0x0) at /home/reitero/build/sources/emacs/emacs/src/igc.c:2088
#10 0x00005555557a1c6b in dflt_scan (ss=0x7ffffffeecf8, base_start=<optimized out>, base_limit=<optimized out>) at /home/reitero/build/sources/emacs/emacs/src/igc.c:2099
#11 0x0000555555835165 in amcSegScan ()
#12 0x0000555555864340 in traceScanSegRes ()
#13 0x000055555586452a in traceScanSeg ()
#14 0x0000555555865386 in TraceAdvance ()
#15 0x0000555555865b4d in TracePoll ()
#16 0x0000555555865db9 in ArenaPoll ()
#17 0x00005555558661a3 in mps_ap_fill ()
#18 0x00005555557a0cd7 in alloc_impl (size=size@entry=56, type=type@entry=IGC_OBJ_VECTOR, ap=0x7fffe8001980) at /home/reitero/build/sources/emacs/emacs/src/igc.c:3976
#19 0x00005555557a0dc6 in alloc (size=size@entry=56, type=type@entry=IGC_OBJ_VECTOR) at /home/reitero/build/sources/emacs/emacs/src/igc.c:4004
#20 0x00005555557a3610 in igc_alloc_pseudovector (nwords_mem=5, nwords_lisp=0, nwords_zero=<optimized out>, tag=PVEC_MARKER) at /home/reitero/build/sources/emacs/emacs/src/igc.c:4158
#21 0x000055555570efeb in allocate_pseudovector (memlen=memlen@entry=5, lisplen=lisplen@entry=0, zerolen=zerolen@entry=0, tag=tag@entry=PVEC_MARKER) at /home/reitero/build/sources/emacs/emacs/src/alloc.c:3738
#22 0x000055555570f06a in Fmake_marker () at /home/reitero/build/sources/emacs/emacs/src/alloc.c:4106
#23 0x0000555555702340 in Fmatch_data (integers=integers@entry=0x0, reuse=reuse@entry=0x0, reseat=reseat@entry=0x0) at /home/reitero/build/sources/emacs/emacs/src/search.c:2909
#24 0x00005555557028bd in record_unwind_save_match_data () at /home/reitero/build/sources/emacs/emacs/src/search.c:3181
#25 0x0000555555797a9f in autocmp_chars (rule=rule@entry=0x7fffeebb2c0d, charpos=charpos@entry=6315, bytepos=bytepos@entry=6315, limit=limit@entry=6657, win=win@entry=0x7fffeef28220,
    face=face@entry=0x7fffa7356678, string=0x0, direction=0x3bf0, ch=40) at /home/reitero/build/sources/emacs/emacs/src/composite.c:948
#26 0x0000555555797f0d in composition_reseat_it (cmp_it=0x7fffffff7450, charpos=6315, bytepos=6315, endpos=6657, w=0x7fffeef28220, bidi_level=<optimized out>, face=0x7fffa7356678, string=0x0)
    at /home/reitero/build/sources/emacs/emacs/src/composite.c:1353
#27 0x0000555555613bb6 in next_element_from_buffer (it=0x7fffffff6b90) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:9810
#28 0x0000555555613956 in next_element_from_buffer (it=0x7fffffff6b90) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:9754
#29 0x0000555555611620 in get_next_display_element (it=0x7fffffff6b90) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:8308
#30 0x00005555556147cb in move_it_in_display_line_to (it=it@entry=0x7fffffff6b90, to_charpos=to_charpos@entry=6657, to_x=to_x@entry=-1, op=op@entry=MOVE_TO_POS)
    at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:10109
#31 0x00005555556166c1 in move_it_to (it=it@entry=0x7fffffff6b90, to_charpos=6657, to_x=to_x@entry=-1, to_y=<optimized out>, to_vpos=to_vpos@entry=-1, op=op@entry=10)
    at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:10843
#32 0x0000555555617ad2 in partial_line_height (it_origin=<optimized out>) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:11475
#33 0x0000555555623815 in try_window (window=window@entry=0x7fffeef28225, pos=..., flags=flags@entry=1) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:21289
#34 0x00005555556290b1 in redisplay_window (window=0x7fffeef28225, just_this_one_p=just_this_one_p@entry=true) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:20632
#35 0x000055555562ad99 in redisplay_window_1 (window=window@entry=0x7fffeef28225) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:18123
#36 0x000055555572c98f in internal_condition_case_1 (bfun=0x55555562ad6a <redisplay_window_1>, arg=0x7fffeef28225, handlers=<optimized out>, hfun=0x555555620fc6 <redisplay_window_error>)
    at /home/reitero/build/sources/emacs/emacs/src/eval.c:1651
#37 0x00005555556224ee in redisplay_internal () at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:17629
#38 0x000055555562353f in redisplay_preserve_echo_area (from_where=<optimized out>) at /home/reitero/build/sources/emacs/emacs/src/xdisp.c:17842
#39 0x00005555556c6224 in detect_input_pending_run_timers (do_display=true) at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:11623
#40 0x000055555577ad66 in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=-1, do_display=true, wait_for_cell=0x0, wait_proc=<optimized out>, just_wait_proc=0)
    at /home/reitero/build/sources/emacs/emacs/src/process.c:5857
#41 0x00005555555f4712 in sit_for (timeout=<optimized out>, reading=true, display_option=1) at /home/reitero/build/sources/emacs/emacs/src/dispnew.c:6903
#42 0x00005555556bb78b in read_char (commandflag=1, map=0x7fffa35f468b, prev_event=0x0, used_mouse_menu=0x7fffffffd64b, end_time=0x0) at /home/reitero/build/sources/emacs/emacs/src/lisp.h:788
#43 0x00005555556c4c00 in read_key_sequence (keybuf=0x7fffffffd770, prompt=0x0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false,
    disable_text_conversion_p=false) at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:10790
#44 0x00005555556b7a23 in command_loop_1 () at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:1435
#45 0x000055555572c919 in internal_condition_case (bfun=0x5555556b77e1 <command_loop_1>, handlers=<optimized out>, hfun=0x5555556b486c <cmd_error>) at /home/reitero/build/sources/emacs/emacs/src/eval.c:1627
#46 0x00005555556b4a97 in command_loop_2 (handlers=handlers@entry=0xa8) at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:1174
#47 0x000055555572c857 in internal_catch (tag=<optimized out>, func=0x5555556b4a75 <command_loop_2>, arg=0xa8) at /home/reitero/build/sources/emacs/emacs/src/eval.c:1306
#48 0x00005555556b5c77 in command_loop () at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:1152
#49 0x00005555556b5d0e in recursive_edit_1 () at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:760
#50 0x00005555556b5eac in Frecursive_edit () at /home/reitero/build/sources/emacs/emacs/src/keyboard.c:843
#51 0x00005555556b7316 in main (argc=<optimized out>, argv=0x7fffffffdb68) at /home/reitero/build/sources/emacs/emacs/src/emacs.c:2658

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)

In GNU Emacs 31.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.2) of 2025-01-20 built on wilap
Repository revision: 35437854166f8d0c1deceb7aba50f27cc838b490
Repository branch: feature/igc
System Description: Arch Linux

Configured using:
 'configure 'CFLAGS=-g3 -ggdb -Og -fno-omit-frame-pointer'
 CPPFLAGS=-I/home/reitero/.local/lib/mps
 LDFLAGS=-L/home/reitero/.local/lib/mps --prefix=/usr --sysconfdir=/etc
 --libexecdir=/usr/lib --localstatedir=/var --with-mps=yes
 --with-gameuser=root:games --with-pgtk --with-xft --with-harfbuzz
 --with-modules --without-compress-install --without-m17n-flt
 --with-libotf --without-imagemagick --without-gsettings --without-gconf
 --with-native-compilation=aot --with-tree-sitter
 --enable-link-time-optimization'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2
LIBOTF LIBSYSTEMD LIBXML2 MODULES MPS NATIVE_COMP NOTIFY INOTIFY PDUMPER
PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LANG: de_AT.UTF-8
  locale-coding-system: utf-8-unix