GNU bug report logs - #79542
31.0.50; feature/igc: crash (2/2) using vterm

Previous Next

Package: emacs;

Reported by: Oliver Reiter <oliver.reiter <at> snapdragon.cc>

Date: Mon, 29 Sep 2025 20:04:01 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 79542 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#79542; Package emacs. (Mon, 29 Sep 2025 20:04:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Oliver Reiter <oliver.reiter <at> snapdragon.cc>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 29 Sep 2025 20:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Oliver Reiter <oliver.reiter <at> snapdragon.cc>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; feature/igc: crash (2/2) using vterm
Date: Mon, 29 Sep 2025 22:02:40 +0200
Dear all,

this is the second crash (the first is bug#79541) while sending code
from a buffer to a REPL in vterm. I have both GDB sessions still open,
and saved the coredumps as well as the binary, should anyone need
further info.

(gdb) bt full
#0  terminate_due_to_signal (sig=11, backtrace_limit=40) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:443
No locals.
#1  0x00005555555a1111 in handle_fatal_signal (sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1793
No locals.
#2  deliver_thread_signal (handler=<optimized out>, sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1785
        old_errno = <optimized out>
#3  deliver_fatal_thread_signal (sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1805
No locals.
#4  handle_sigsegv (sig=11, siginfo=0x555555abfd30 <sigsegv_stack+64496>, arg=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1943
        fatal = <optimized out>
#5  <signal handler called>
No locals.
#6  0x00007ffff343e74b in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
No locals.
#7  0x00005555559639f7 in sigHandle (sig=<optimized out>, info=<optimized out>, uap=<optimized out>) at ../mps/code/protsgix.c:114
        e = <optimized out>
        asigset = {
          __val = {1024, 93824996255406, 68719476734, 140737353838592, 13, 12, 0, 140736943980360, 140736943980368, 140737353838592, 4294967297, 93824996486145, 140737353838592, 140737353838608, 140737109727584, 
            140736942601640}
        }
        oldset = {
          __val = {1024, 140736947235592, 140736947235592, 0, 140737488311472, 93824996205011, 140737488311696, 1, 1, 1, 140737488311696, 93824996489204, 140737488311536, 140736942596992, 140737488311760, 
            4294967297}
        }
        sa = {
          __sigaction_handler = {
            sa_handler = 0x555555963930 <sigHandle>,
            sa_sigaction = 0x555555963930 <sigHandle>
          },
          sa_mask = {
            __val = {0, 1, 1, 1, 140736942596368, 93824998065904, 93824998065904, 140737190244352, 93824997697504, 140737488311280, 93824996127275, 140737189744640, 140737353838592, 140737488311280, 
              93824996469329, 140737353838592}
          },
          sa_flags = 335544324,
          sa_restorer = 0x7ffff343e540 <__restore_rt>
        }
        _saved_errno = 11
#8  <signal handler called>
No locals.
#9  0x00005555557f9d7d in string_char_and_length (p=<optimized out>, length=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/character.h:374
        c = <optimized out>
        d = <optimized out>
#10 fetch_string_char_as_multibyte_advance (string=<optimized out>, charidx=<synthetic pointer>, byteidx=<synthetic pointer>) at /home/reitero/build/sources/emacs/emacs_debug/src/character.h:473
        chlen = <optimized out>
        output = <optimized out>
        b = 109749200
        chp = 0x7fffee3b3000 ""
#11 print_object (obj=<optimized out>, escapeflag=true, pc=0x7fffffff6560) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:2659
        c = <optimized out>
        i_byte = 109749200
        len = 1
        i = <optimized out>
        name = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
        size_byte = <optimized out>
        p = <optimized out>
        signedp = <optimized out>
        confusing = false
        printcharfun = <optimized out>
        base_depth = <optimized out>
        base_sp = <optimized out>
        buf = '\000' <repeats 53 times>
        print_obj = <optimized out>
#12 0x00005555557fc2dc in print (obj=<optimized out>, escapeflag=<optimized out>, pc=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:1325
No locals.
#13 0x00005555557fcc47 in Fprin1_to_string (object=0x7fffe3d50dfb, noescape=0x0, overrides=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:825
        count = <optimized out>
        save_deactivate_mark = 0x0
        pc = {
          printcharfun = 0x0,
          old_printcharfun = 0x7fffe8d7c035,
          old_point = -1,
          start_point = -1,
          old_point_byte = -1,
          start_point_byte = -1,
          specpdl_count = {
            bytes = 352
          },
          being_printed = {0x7fffe3d50dfb, 0x2aaa920b2cd0, 0x0 <repeats 198 times>}
        }
        previous = <optimized out>
#14 0x00005555557b063c in styled_format (nargs=3, args=0x7fffffffc7a8, message=message <at> entry=true) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3677
        noescape = <optimized out>
        plus_flag = <optimized out>
        field_width = 0
        num = <optimized out>
        num_end = 0x7fffffff6df8 "S"
        space_flag = <optimized out>
        sharp_flag = <optimized out>
        precision = 9223372036854775807
        arg = <optimized out>
        float_conversion = <optimized out>
        zero_flag = <optimized out>
        conversion = <optimized out>
        spec_index = 1
        minus_flag = <optimized out>
        precision_given = <optimized out>
        spec = 0x7fffffff6c40
        n0 = 1
        ispec0 = 1
        format0 = 0x7fffffff6df7 "%S"
        convbytes = 1
        convsrc = 0x7fffffff6df7 "%S"
        format_char = <optimized out>
        used = <optimized out>
        buflen_needed = <optimized out>
        n = 2
        initial_buffer = "Error running timer ‘vterm--delayed-redraw’: d-redraw’\000\000\000\000\001\000\000\000\000\000\000\000\020ax\337\377\177\000\000\000\200\303\361\377\177\000\000\020p\373\367\377\177\000\0000CD\351\377\177\000\000\001\000\000\000\000\000\000\0000p\377\377\377\177\000\000+\262\220UUU", '\000' <repeats 11 times>, "p\373\367\377\177\000\000\000\200\303\361\377\177\000\000\020p\373\367\377\177\000\0000CD\351\377\177\000\000\000p\373\367\377\177\000\000pr\377\377\377\177\000\000\v<\226UUU", '\000' <repeats 11 times>, "\200\303\361\377\177"...
        buf = 0x7fffffff6f80 "Error running timer ‘vterm--delayed-redraw’: d-redraw’"
        bufsize = 22318
        max_bufsize = 2305843009213693952
        p = 0x7fffffff6fb1 "d-redraw’"
        buf_save_value_index = <optimized out>
        format = <optimized out>
        end = <optimized out>
        nchars = 45
        maybe_combine_byte = false
        val = <optimized out>
        arg_intervals = <optimized out>
        sa_avail = <optimized out>
        sa_count = <optimized out>
        info = 0x7fffffff6c20
        multibyte_format = false
        formatlen = <optimized out>
        format_start = 0x7fffffff6de0 "Error running timer%s: %S"
        fmt_props = false
        nspec_bound = <optimized out>
        info_size = <optimized out>
        alloca_size = <optimized out>
        spec_arguments = 0x7fffe3d50e68
        discarded = 0x7fffffff6da0 ""
        multibyte = true
        quoting_style = 0x73b8
        ispec = 2
        nspec = <optimized out>
        new_result = <optimized out>
        retry = <optimized out>
        USEFUL_PRECISION_MAX = USEFUL_PRECISION_MAX
        SPRINTF_BUFSIZE = SPRINTF_BUFSIZE
        CONVBYTES_ROOM = CONVBYTES_ROOM
        pMlen = pMlen
#15 0x00005555557b12ba in Fformat_message (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3428
No locals.
#16 Fmessage (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3225
        val = <optimized out>
#17 Fmessage (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3191
        val = <optimized out>
#18 0x00005555557b8ad8 in Ffuncall (nargs=<optimized out>, args=0x7fffffffc7a0) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:3218
        count = <optimized out>
        val = <optimized out>
#19 0x00007ffff187425f in F74696d65722d6576656e742d68616e646c6572_timer_event_handler_0 ()
   from /home/reitero/build/sources/emacs/emacs_debug/src/../native-lisp/31.0.50-f2fa238d/preloaded/timer-3ee7cfd9-6ab3799c.eln
No symbol table info available.
#20 0x00005555557b8ad8 in Ffuncall (nargs=<optimized out>, args=0x7fffffffc8c0) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:3218
        count = <optimized out>
        val = <optimized out>
#21 0x00005555556eb5b5 in timer_check_2 (timers=<optimized out>, idle_timers=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:4833
        count = <optimized out>
        old_deactivate_mark = 0x0
        chosen_timer = <optimized out>
        timer = <optimized out>
        idle_timer = <optimized out>
        ripe = <optimized out>
        timer_ripe = <optimized out>
        idle_timer_ripe = <optimized out>
        difference = <optimized out>
        timer_difference = <optimized out>
        idle_timer_difference = <optimized out>
        now = <optimized out>
        idleness_now = <optimized out>
#22 timer_check () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:4898
        nexttime = <optimized out>
        timers = 0x7fffe3d50cf3
        idle_timers = 0x7fffe3d50d23
        tem = <optimized out>
#23 0x0000555555841833 in wait_reading_process_output.constprop.1 (time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0, read_kbd=read_kbd <at> entry=-1, do_display=true, just_wait_proc=0, wait_proc=0x0, 
    wait_for_cell=0x0) at /home/reitero/build/sources/emacs/emacs_debug/src/process.c:5463
        old_timers_run = 1752
        wrapped = <optimized out>
        read_some_bytes = <optimized out>
        count = <optimized out>
        process_skipped = <optimized out>
        channel_start = <optimized out>
        child_fd = <optimized out>
        nread = <optimized out>
        channel = <optimized out>
        nfds = <optimized out>
        Available = {
          fds_bits = {0 <repeats 16 times>}
        }
        Writeok = {
          fds_bits = {0 <repeats 16 times>}
        }
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = <optimized out>
        xerrno = 11
        proc = <optimized out>
        timeout = {
          tv_sec = 100000,
          tv_nsec = 0
        }
        end_time = <optimized out>
        timer_delay = <optimized out>
        got_output_end_time = <optimized out>
        wait = <optimized out>
        got_some_output = <optimized out>
        prev_wait_proc_nbytes_read = 0
        retry_for_async = <optimized out>
        count = <optimized out>
        now = <optimized out>
        last_read_channel = <optimized out>
        MINIMUM = MINIMUM
        TIMEOUT = TIMEOUT
        FOREVER = FOREVER
#24 0x00005555556ee15f in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffcf50, used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffd4ab, end_time=end_time <at> entry=0x0)
    at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:4121
        do_display = <optimized out>
        obj = <optimized out>
        str = <optimized out>
#25 0x00005555556efd19 in read_event_from_main_queue (end_time=<optimized out>, local_getcjmp=<optimized out>, used_mouse_menu=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:2342
        c = 0x0
        save_jump = {{
            __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0 <repeats 16 times>}
            }
          }}
        kb = 0x555555d71310
        count = <optimized out>
#26 read_decoded_event_from_main_queue (end_time=<optimized out>, local_getcjmp=<optimized out>, prev_event=<optimized out>, used_mouse_menu=<optimized out>)
    at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:2406
        nextevt = <optimized out>
        frame = <optimized out>
        terminal = <optimized out>
        events = {0x0 <repeats 16 times>}
        n = <optimized out>
#27 read_char (commandflag=1, map=0x7fffe3c0e5c3, prev_event=0x0, used_mouse_menu=0x7fffffffd4ab, end_time=0x0) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:3037
        c = 0x0
        local_getcjmp = {{
            __jmpbuf = {0, 8575384497848626057, 93824997564320, 140737009437757, 140737014457795, 0, 8575384497099942793, 2473804295881403273},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {55832, 140737097796544, 0, 578, 144, 0, 10442207524094161920, 93824996763980, 96, 96, 5, 140737488343696, 93824994733673, 140737096572763, 0, 0}
            }
          }}
        save_jump = {{
            __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0 <repeats 16 times>}
            }
          }}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = 0x0
        also_record = 0x0
        reread = false
        recorded = false
        polling_stopped_here = true
        orig_kboard = 0x555555d71310
        retry = <optimized out>
        jmpcount = <optimized out>
        c_volatile = 0x0
#28 0x000055555570834d in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, disable_text_conversion_p=<optimized out>, fix_current_buffer=<optimized out>, 
    can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:11196
        interrupted_kboard = 0x555555d71310
        interrupted_frame = <optimized out>
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = <optimized out>
        keys_local_start = 0
        new_binding = <optimized out>
        count = <optimized out>
        t = <optimized out>
        echo_start = 0
        keys_start = 0
        current_binding = 0x7fffe3c0e5c3
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {
          parent = 0x7fffe2c249ab,
          map = 0x7fffe2c249ab,
          start = 0,
          end = 0
        }
        keytran = {
          parent = 0x7fffe1c02cdb,
          map = 0x7fffe1c02cdb,
          start = 0,
          end = 0
        }
        indec = {
          parent = 0x7fffe2c24993,
          map = 0x7fffe2c24993,
          start = 0,
          end = 0
        }
        shift_translated = <optimized out>
        delayed_switch_frame = <optimized out>
        original_uppercase = <optimized out>
        original_uppercase_position = <optimized out>
        starting_buffer = <optimized out>
        fake_prefixed_keys = <optimized out>
        first_event = 0x0
        second_event = <optimized out>
        replay_key = <optimized out>
#29 0x00005555556e6af7 in command_loop_1 () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:1441
        keybuf = {0xb2, 0x196, 0x196, 0x3, 0xc, 0x13eb8, 0x38, 0x7fffe8b88bc5, 0x7fffffffd6e0, 0x90ea2c6b008b3400, 0x0, 0x60, 0x0, 0x0, 0x0, 0x7fffffffd9e0, 0x7fffffffd790, 0x5555556e45f7 <cmd_error+551>, 0x0, 
          0x0, 0x0, 0x0, 0x2aaa8c197970, 0x7fffe393cdab, 0x7fffe1c017ec, 0xc5c0, 0x55555597ec00, 0x90ea2c6b008b3400, 0xc, 0xd040}
        i = <optimized out>
        last_pt = <optimized out>
        count = <optimized out>
        cmd = <optimized out>
        prev_modiff = 323
        prev_buffer = 0x7fffe8b88bc0
#30 0x00005555557b5433 in internal_condition_case (bfun=0x5555556e6930 <command_loop_1>, handlers=<optimized out>, hfun=0x5555556e43d0 <cmd_error>) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:1713
        val = <optimized out>
        c = 0x555555c7a040
#31 0x00005555556e46c6 in command_loop_2 (handlers=0xa8) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:1180
        val = <optimized out>
#32 0x00005555557b520f in internal_catch (tag=<optimized out>, func=0x5555556e46a0 <command_loop_2>, arg=0xa8) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:1393
        val = <optimized out>
        c = 0x555555c79eb0
#33 0x00005555556e61e3 in command_loop () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:1158
No locals.
#34 0x00005555556e6334 in recursive_edit_1.isra.0 () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:766
        count = <optimized out>
        val = <optimized out>
#35 0x00005555556e68ff in Frecursive_edit () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:849
        count = <optimized out>
        buffer = <optimized out>
#36 0x00005555555ae841 in main (argc=1, argv=0x7fffffffdbe8) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:2651
        stack_bottom_variable = 0x7fff00000000
        old_argc = <optimized out>
        dump_file = 0x0
        no_loadup = <optimized out>
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = 0x0
        skip_args = 0
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {
          rlim_cur = 10022912,
          rlim_max = 18446744073709551615
        }
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>

Lisp Backtrace:
"message" (0xffffc7a8)
"timer-event-handler" (0xffffc8c8)

Best,

Oliver

In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
 3.24.50, cairo version 1.18.4) of 2025-09-29 built on wilap
Repository revision: a53627960e4cc45161538cb192086290272cd763
Repository branch: feature/igc
System Description: Arch Linux

Configured using:
 'configure 'CFLAGS=-g3 -ggdb -O3 -mtune=native -march=native
 -fno-omit-frame-pointer -fno-tree-sra' --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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#79542; Package emacs. (Tue, 30 Sep 2025 15:01:02 GMT) Full text and rfc822 format available.

Message #8 received at 79542 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Oliver Reiter <oliver.reiter <at> snapdragon.cc>
Cc: 79542 <at> debbugs.gnu.org
Subject: Re: bug#79542: 31.0.50; feature/igc: crash (2/2) using vterm
Date: Tue, 30 Sep 2025 18:00:15 +0300
> Date: Mon, 29 Sep 2025 22:02:40 +0200
> From:  Oliver Reiter via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> 
> this is the second crash (the first is bug#79541) while sending code
> from a buffer to a REPL in vterm. I have both GDB sessions still open,
> and saved the coredumps as well as the binary, should anyone need
> further info.
> 
> (gdb) bt full
> #0  terminate_due_to_signal (sig=11, backtrace_limit=40) at /home/reitero/build/sources/emacs/emacs_debug/src/emacs.c:443
> No locals.
> #1  0x00005555555a1111 in handle_fatal_signal (sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1793
> No locals.
> #2  deliver_thread_signal (handler=<optimized out>, sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1785
>         old_errno = <optimized out>
> #3  deliver_fatal_thread_signal (sig=11) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1805
> No locals.
> #4  handle_sigsegv (sig=11, siginfo=0x555555abfd30 <sigsegv_stack+64496>, arg=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/sysdep.c:1943
>         fatal = <optimized out>
> #5  <signal handler called>
> No locals.
> #6  0x00007ffff343e74b in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
> No locals.
> #7  0x00005555559639f7 in sigHandle (sig=<optimized out>, info=<optimized out>, uap=<optimized out>) at ../mps/code/protsgix.c:114
>         e = <optimized out>
>         asigset = {
>           __val = {1024, 93824996255406, 68719476734, 140737353838592, 13, 12, 0, 140736943980360, 140736943980368, 140737353838592, 4294967297, 93824996486145, 140737353838592, 140737353838608, 140737109727584, 
>             140736942601640}
>         }
>         oldset = {
>           __val = {1024, 140736947235592, 140736947235592, 0, 140737488311472, 93824996205011, 140737488311696, 1, 1, 1, 140737488311696, 93824996489204, 140737488311536, 140736942596992, 140737488311760, 
>             4294967297}
>         }
>         sa = {
>           __sigaction_handler = {
>             sa_handler = 0x555555963930 <sigHandle>,
>             sa_sigaction = 0x555555963930 <sigHandle>
>           },
>           sa_mask = {
>             __val = {0, 1, 1, 1, 140736942596368, 93824998065904, 93824998065904, 140737190244352, 93824997697504, 140737488311280, 93824996127275, 140737189744640, 140737353838592, 140737488311280, 
>               93824996469329, 140737353838592}
>           },
>           sa_flags = 335544324,
>           sa_restorer = 0x7ffff343e540 <__restore_rt>
>         }
>         _saved_errno = 11
> #8  <signal handler called>
> No locals.
> #9  0x00005555557f9d7d in string_char_and_length (p=<optimized out>, length=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/character.h:374
>         c = <optimized out>
>         d = <optimized out>
> #10 fetch_string_char_as_multibyte_advance (string=<optimized out>, charidx=<synthetic pointer>, byteidx=<synthetic pointer>) at /home/reitero/build/sources/emacs/emacs_debug/src/character.h:473
>         chlen = <optimized out>
>         output = <optimized out>
>         b = 109749200
>         chp = 0x7fffee3b3000 ""
> #11 print_object (obj=<optimized out>, escapeflag=true, pc=0x7fffffff6560) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:2659
>         c = <optimized out>
>         i_byte = 109749200
>         len = 1
>         i = <optimized out>
>         name = <optimized out>
> --Type <RET> for more, q to quit, c to continue without paging--c
>         size_byte = <optimized out>
>         p = <optimized out>
>         signedp = <optimized out>
>         confusing = false
>         printcharfun = <optimized out>
>         base_depth = <optimized out>
>         base_sp = <optimized out>
>         buf = '\000' <repeats 53 times>
>         print_obj = <optimized out>
> #12 0x00005555557fc2dc in print (obj=<optimized out>, escapeflag=<optimized out>, pc=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:1325
> No locals.
> #13 0x00005555557fcc47 in Fprin1_to_string (object=0x7fffe3d50dfb, noescape=0x0, overrides=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/print.c:825
>         count = <optimized out>
>         save_deactivate_mark = 0x0
>         pc = {
>           printcharfun = 0x0,
>           old_printcharfun = 0x7fffe8d7c035,
>           old_point = -1,
>           start_point = -1,
>           old_point_byte = -1,
>           start_point_byte = -1,
>           specpdl_count = {
>             bytes = 352
>           },
>           being_printed = {0x7fffe3d50dfb, 0x2aaa920b2cd0, 0x0 <repeats 198 times>}
>         }
>         previous = <optimized out>
> #14 0x00005555557b063c in styled_format (nargs=3, args=0x7fffffffc7a8, message=message <at> entry=true) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3677
>         noescape = <optimized out>
>         plus_flag = <optimized out>
>         field_width = 0
>         num = <optimized out>
>         num_end = 0x7fffffff6df8 "S"
>         space_flag = <optimized out>
>         sharp_flag = <optimized out>
>         precision = 9223372036854775807
>         arg = <optimized out>
>         float_conversion = <optimized out>
>         zero_flag = <optimized out>
>         conversion = <optimized out>
>         spec_index = 1
>         minus_flag = <optimized out>
>         precision_given = <optimized out>
>         spec = 0x7fffffff6c40
>         n0 = 1
>         ispec0 = 1
>         format0 = 0x7fffffff6df7 "%S"
>         convbytes = 1
>         convsrc = 0x7fffffff6df7 "%S"
>         format_char = <optimized out>
>         used = <optimized out>
>         buflen_needed = <optimized out>
>         n = 2
>         initial_buffer = "Error running timer ‘vterm--delayed-redraw’: d-redraw’\000\000\000\000\001\000\000\000\000\000\000\000\020ax\337\377\177\000\000\000\200\303\361\377\177\000\000\020p\373\367\377\177\000\0000CD\351\377\177\000\000\001\000\000\000\000\000\000\0000p\377\377\377\177\000\000+\262\220UUU", '\000' <repeats 11 times>, "p\373\367\377\177\000\000\000\200\303\361\377\177\000\000\020p\373\367\377\177\000\0000CD\351\377\177\000\000\000p\373\367\377\177\000\000pr\377\377\377\177\000\000\v<\226UUU", '\000' <repeats 11 times>, "\200\303\361\377\177"...
>         buf = 0x7fffffff6f80 "Error running timer ‘vterm--delayed-redraw’: d-redraw’"
>         bufsize = 22318
>         max_bufsize = 2305843009213693952
>         p = 0x7fffffff6fb1 "d-redraw’"
>         buf_save_value_index = <optimized out>
>         format = <optimized out>
>         end = <optimized out>
>         nchars = 45
>         maybe_combine_byte = false
>         val = <optimized out>
>         arg_intervals = <optimized out>
>         sa_avail = <optimized out>
>         sa_count = <optimized out>
>         info = 0x7fffffff6c20
>         multibyte_format = false
>         formatlen = <optimized out>
>         format_start = 0x7fffffff6de0 "Error running timer%s: %S"
>         fmt_props = false
>         nspec_bound = <optimized out>
>         info_size = <optimized out>
>         alloca_size = <optimized out>
>         spec_arguments = 0x7fffe3d50e68
>         discarded = 0x7fffffff6da0 ""
>         multibyte = true
>         quoting_style = 0x73b8
>         ispec = 2
>         nspec = <optimized out>
>         new_result = <optimized out>
>         retry = <optimized out>
>         USEFUL_PRECISION_MAX = USEFUL_PRECISION_MAX
>         SPRINTF_BUFSIZE = SPRINTF_BUFSIZE
>         CONVBYTES_ROOM = CONVBYTES_ROOM
>         pMlen = pMlen
> #15 0x00005555557b12ba in Fformat_message (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3428
> No locals.
> #16 Fmessage (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3225
>         val = <optimized out>
> #17 Fmessage (nargs=<optimized out>, args=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/editfns.c:3191
>         val = <optimized out>
> #18 0x00005555557b8ad8 in Ffuncall (nargs=<optimized out>, args=0x7fffffffc7a0) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:3218
>         count = <optimized out>
>         val = <optimized out>
> #19 0x00007ffff187425f in F74696d65722d6576656e742d68616e646c6572_timer_event_handler_0 ()
>    from /home/reitero/build/sources/emacs/emacs_debug/src/../native-lisp/31.0.50-f2fa238d/preloaded/timer-3ee7cfd9-6ab3799c.eln
> No symbol table info available.
> #20 0x00005555557b8ad8 in Ffuncall (nargs=<optimized out>, args=0x7fffffffc8c0) at /home/reitero/build/sources/emacs/emacs_debug/src/eval.c:3218
>         count = <optimized out>
>         val = <optimized out>
> #21 0x00005555556eb5b5 in timer_check_2 (timers=<optimized out>, idle_timers=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:4833
>         count = <optimized out>
>         old_deactivate_mark = 0x0
>         chosen_timer = <optimized out>
>         timer = <optimized out>
>         idle_timer = <optimized out>
>         ripe = <optimized out>
>         timer_ripe = <optimized out>
>         idle_timer_ripe = <optimized out>
>         difference = <optimized out>
>         timer_difference = <optimized out>
>         idle_timer_difference = <optimized out>
>         now = <optimized out>
>         idleness_now = <optimized out>
> #22 timer_check () at /home/reitero/build/sources/emacs/emacs_debug/src/keyboard.c:4898
>         nexttime = <optimized out>
>         timers = 0x7fffe3d50cf3
>         idle_timers = 0x7fffe3d50d23
>         tem = <optimized out>

What happened here is that Emacs attempted to run a timer, and the
timer function signaled an error.  Emacs then segfaulted trying to
show the error message from the timer function, evidently because some
string that is part of the error data has invalid data(??).

The backtrace says the segfault happened here:

> #9  0x00005555557f9d7d in string_char_and_length (p=<optimized out>, length=<optimized out>) at /home/reitero/build/sources/emacs/emacs_debug/src/character.h:374

This seems to be on this line:

  INLINE int
  string_char_and_length (unsigned char const *p, int *length)
  {
    int c = p[0];  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    if (! (c & 0x80))
      {
	*length = 1;
	return c;
      }
    eassume (0xC0 <= c);

This could only happen if 'p' is an invalid pointer.  'p' comes from
here:

  INLINE int
  fetch_string_char_as_multibyte_advance (Lisp_Object string,
					  ptrdiff_t *charidx, ptrdiff_t *byteidx)
  {
    int output;
    ptrdiff_t b = *byteidx;
    unsigned char *chp = SDATA (string) + b; <<<<<<<<<<<<<<<<<<
    if (STRING_MULTIBYTE (string))
      {
	int chlen;
	output = string_char_and_length (chp, &chlen);
	b += chlen;
      }

So I suspect that some Lisp string was moved by GC behind our back.
Maybe we have some problem in prin1-to-string or something?

In any case, you should look into the error signaled by that timer
function (which evidently belongs to vterm again).

> Configured using:
>  'configure 'CFLAGS=-g3 -ggdb -O3 -mtune=native -march=native

I recommend against using -O3 when compiling Emacs.




This bug report was last modified 37 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.