Subject: 31.0.50; feature/igc: crash "switching to thread"
From: Oliver Reiter <[email-masked]>
To: [email-masked]
Date: Fri, 14 Mar 2025 21:34:32 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Evening!

After weeks of no crash, emacs crashed on me today again.

[New Thread 0x7fffb3bb96c0 (LWP 54691)]
[Thread 0x7fffb3bb96c0 (LWP 54691) exited]
... quite a lot of those
[New Thread 0x7fffb3bb96c0 (LWP 54696)]
[Thread 0x7fffb3bb96c0 (LWP 54696) exited]
[New Thread 0x7fffb3bb96c0 (LWP 54709)]
[Thread 0x7fffb3bb96c0 (LWP 54709) exited]
[New Thread 0x7fffb3bb96c0 (LWP 54751)]
[Switching to Thread 0x7fffb3bb96c0 (LWP 54751)]

Thread 409 "diff-hl--update" hit Breakpoint 1, terminate_due_to_signal (sig=6, backtrace_limit=40) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:425
425	{
(gdb) bt
#0  terminate_due_to_signal (sig=6, backtrace_limit=40) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:425
#1  0x00005555556d31a5 in emacs_abort () at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:2378
#2  0x000055555579fa76 in fix_lisp_obj (ss=ss@entry=0x7fffb3bb81a8, pobj=pobj@entry=0x555556f67eb0) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:1132
#3  0x00005555557a1040 in scan_specpdl (ss=0x7fffb3bb81a8, start=<optimized out>, end=0x555556f684e0, closure=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:1535
#4  0x0000555555861428 in RootScan ()
#5  0x00005555558615fa in traceScanRootRes ()
#6  0x0000555555861c0b in TraceStart ()
#7  0x0000555555862bf8 in PolicyStartTrace ()
#8  0x0000555555866331 in TracePoll ()
#9  0x00005555558664f9 in ArenaPoll ()
#10 0x00005555558668e3 in mps_ap_fill ()
#11 0x00005555557a13b7 in alloc_impl (size=size@entry=304, type=type@entry=IGC_OBJ_HANDLER, ap=0x7fffb8367818) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4094
#12 0x00005555557a14a6 in alloc (size=size@entry=304, type=type@entry=IGC_OBJ_HANDLER) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4122
#13 0x00005555557a17cd in igc_alloc_handler () at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4499
#14 0x00005555557a392f in run_thread (state=0x7fffa66f9c90) at /home/reitero/build/sources/emacs/emacs_debug/src/thread.c:804
#15 0x00007ffff353270a in start_thread (arg=<optimized out>) at pthread_create.c:448
#16 0x00007ffff35b6aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) bt full
#0  terminate_due_to_signal (sig=6, backtrace_limit=40) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:425
No locals.
#1  0x00005555556d31a5 in emacs_abort () at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:2378
No locals.
#2  0x000055555579fa76 in fix_lisp_obj (ss=ss@entry=0x7fffb3bb81a8, pobj=pobj@entry=0x555556f67eb0) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:1132
        word = <optimized out>
        p = 0x555556f67eb0
        tag = 1
        client = <optimized out>
        base = <optimized out>
        res = <optimized out>
        _ss = 0x7fffb3bb81a8
        _mps_zs = <optimized out>
        _mps_ufs = 0
        _mps_wt = <optimized out>
        _mps_w = <optimized out>
#3  0x00005555557a1040 in scan_specpdl (ss=0x7fffb3bb81a8, start=<optimized out>, end=0x555556f684e0, closure=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:1535
        res = <optimized out>
        pdl = 0x555556f67ea0
        t = <optimized out>
        _ss = 0x7fffb3bb81a8
        _mps_zs = <optimized out>
        _mps_ufs = 0
        _mps_wt = <optimized out>
        _mps_w = <optimized out>
#4  0x0000555555861428 in RootScan ()
No symbol table info available.
#5  0x00005555558615fa in traceScanRootRes ()
No symbol table info available.
#6  0x0000555555861c0b in TraceStart ()
No symbol table info available.
#7  0x0000555555862bf8 in PolicyStartTrace ()
No symbol table info available.
#8  0x0000555555866331 in TracePoll ()
No symbol table info available.
#9  0x00005555558664f9 in ArenaPoll ()
No symbol table info available.
#10 0x00005555558668e3 in mps_ap_fill ()
No symbol table info available.
#11 0x00005555557a13b7 in alloc_impl (size=size@entry=304, type=type@entry=IGC_OBJ_HANDLER, ap=0x7fffb8367818) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4094
        res = <optimized out>
        p = 0x0
#12 0x00005555557a14a6 in alloc (size=size@entry=304, type=type@entry=IGC_OBJ_HANDLER) at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4122
No locals.
#13 0x00005555557a17cd in igc_alloc_handler () at /home/reitero/build/sources/emacs/emacs_debug/src/igc.c:4499
        h = <optimized out>
#14 0x00005555557a392f in run_thread (state=0x7fffa66f9c90) at /home/reitero/build/sources/emacs/emacs_debug/src/thread.c:804
        stack_pos = {
          o = 0x7fffb3bb85c0,
          p = 0x7fffb3bb85c0,
          c = -64 '\300'
        }
        self = 0x7fffa66f9c90
--Type <RET> for more, q to quit, c to continue without paging--
        iter = <optimized out>
        c = <optimized out>
#15 0x00007ffff353270a in start_thread (arg=<optimized out>) at pthread_create.c:448
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {
          cancel_jmp_buf = {{
              jmp_buf = {140736208803520, -7017451993682105089, 140736208803520, -600, 11, 140737488338656, -7017451993560470273, -7017310503391286017},
              mask_was_saved = 0
            }},
          priv = {
            pad = {0x0, 0x0, 0x0, 0x0},
            data = {
              prev = 0x0,
              cleanup = 0x0,
              canceltype = 0
            }
          }
        }
        not_first_call = <optimized out>
#16 0x00007ffff35b6aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.
(gdb) xbacktrace ## is empty

In GNU Emacs 31.0.50 (build 13, x86_64-pc-linux-gnu, GTK+ Version
 3.24.48, cairo version 1.18.2) of 2025-03-07 built on wilap
Repository revision: 07cca9aec11b2c40d1107a90b81400c3a34e1f68
Repository branch: HEAD
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

Cheers,

Oliver