GNU bug report logs - #78444
30.1; Crash in GC (vector_marked_p)

Previous Next

Package: emacs;

Reported by: George P <georgepanagopo <at> gmail.com>

Date: Thu, 15 May 2025 18:46:01 UTC

Severity: normal

Found in version 30.1

To reply to this bug, email your comments to 78444 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#78444; Package emacs. (Thu, 15 May 2025 18:46:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to George P <georgepanagopo <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 15 May 2025 18:46:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; Crash in GC (vector_marked_p)
Date: Thu, 15 May 2025 14:45:09 -0400
[Message part 1 (text/plain, inline)]
Hi,

I am experiencing crashes during GC, and I have no idea what causes these
crashes or how to reproduce them consistently. I have posted another crash
without debugging symbols in
https://lists.gnu.org/archive/html/emacs-devel/2024-11/msg00724.html. This
time, I was running emacs in gdb, the trace is below. Seems to be related
to bug#38936.

(gdb) bt full
#0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273
No locals.
#1  0x00000000005892bc in process_mark_stack (base_sp=base_sp <at> entry=2188)
at alloc.c:7276
        ptr = 0x4000000023000008
        pvectype = <optimized out>
        obj = 0x400000002300000d
        po = <optimized out>
#2  0x000000000058906a in mark_objects (objs=objs <at> entry=0x15554f39bcb0,
n=n <at> entry=76) at alloc.c:7511
        sp = 2188
#3  0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x15554f39bca8)
at alloc.c:6890
        ptr = 0x15554f39bca8
        size = 76
#4  0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x15554f39bca8)
at alloc.c:6953
No locals.
#5  0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=2187)
at alloc.c:7298
        ptr = 0x15554f39bca8
        pvectype = PVEC_BUFFER
        obj = 0x15554f39bcad
        po = <optimized out>
#6  0x000000000058906a in mark_objects (objs=objs <at> entry=0x1734d00,
n=n <at> entry=25)
at alloc.c:7511
        sp = 2187
#7  0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x1734cf8)
at alloc.c:6890
        ptr = 0x1734cf8
        size = 25
#8  0x000000000058a304 in mark_window (ptr=ptr <at> entry=0x1734cf8) at
alloc.c:7071
        w = 0x1734cf8
#9  0x0000000000589322 in process_mark_stack (base_sp=base_sp <at> entry=2186)
at alloc.c:7306
        ptr = 0x1734cf8
        pvectype = PVEC_WINDOW
        obj = 0x1734cfd
        po = <optimized out>
#10 0x000000000058906a in mark_objects (objs=objs <at> entry=0x1c327080,
n=n <at> entry=25) at alloc.c:7511
        sp = 2186
#11 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x1c327078)
at alloc.c:6890
        ptr = 0x1c327078
        size = 25
#12 0x000000000058a304 in mark_window (ptr=ptr <at> entry=0x1c327078) at
alloc.c:7071
        w = 0x1c327078
#13 0x0000000000589322 in process_mark_stack (base_sp=base_sp <at> entry=2185)
at alloc.c:7306
        ptr = 0x1c327078
        pvectype = PVEC_WINDOW
        obj = 0x1c32707d
        po = <optimized out>
#14 0x000000000058906a in mark_objects (objs=objs <at> entry=0x13cea08,
n=n <at> entry=29)
at alloc.c:7511
        sp = 2185
#15 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x13cea00)
at alloc.c:6890
        ptr = 0x13cea00
        size = 29
#16 0x0000000000589162 in mark_frame (ptr=ptr <at> entry=0x13cea00) at
alloc.c:7036
        f = 0x13cea00
        tem = <optimized out>
#17 0x0000000000589315 in process_mark_stack (base_sp=base_sp <at> entry=2184)
at alloc.c:7302
        ptr = 0x13cea00
        pvectype = PVEC_FRAME
        obj = 0x13cea05
        po = <optimized out>
#18 0x000000000058906a in mark_objects (objs=objs <at> entry=0x23abe050,
n=n <at> entry=25) at alloc.c:7511
        sp = 2184
#19 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x23abe048)
at alloc.c:6890
        ptr = 0x23abe048
        size = 25
#20 0x000000000058a304 in mark_window (ptr=ptr <at> entry=0x23abe048) at
alloc.c:7071
        w = 0x23abe048
#21 0x0000000000589322 in process_mark_stack (base_sp=base_sp <at> entry=2136)
at alloc.c:7306
        ptr = 0x23abe048
        pvectype = PVEC_WINDOW
        obj = 0x23abe04d
        po = <optimized out>
#22 0x000000000058906a in mark_objects (objs=objs <at> entry=0x84327c0,
n=n <at> entry=76)
at alloc.c:7511
        sp = 2136
#23 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x84327b8)
at alloc.c:6890
        ptr = 0x84327b8
        size = 76
#24 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x84327b8) at
alloc.c:6953
No locals.
#25 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=2019)
at alloc.c:7298
        ptr = 0x84327b8
        pvectype = PVEC_BUFFER
        obj = 0x84327bd
        po = <optimized out>
#26 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 2019
#27 0x000000000058a413 in mark_overlay (ov=ov <at> entry=0x471d0288) at
alloc.c:6932
No locals.
#28 0x00000000005893b2 in process_mark_stack (base_sp=base_sp <at> entry=2017)
at alloc.c:7354
        ptr = 0x471d0288
        pvectype = PVEC_OVERLAY
        obj = 0x471d028d
        po = <optimized out>
#29 0x000000000058906a in mark_objects (objs=objs <at> entry=0x42f2ee08,
n=n <at> entry=76) at alloc.c:7511
        sp = 2017
#30 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x42f2ee00)
at alloc.c:6890
        ptr = 0x42f2ee00
        size = 76
#31 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x42f2ee00) at
alloc.c:6953
No locals.
#32 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1966)
at alloc.c:7298
        ptr = 0x42f2ee00
        pvectype = PVEC_BUFFER
        obj = 0x42f2ee05
        po = <optimized out>
#33 0x000000000058906a in mark_objects (objs=objs <at> entry=0x2844128,
n=n <at> entry=76)
at alloc.c:7511
        sp = 1966
#34 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x2844120)
at alloc.c:6890
        ptr = 0x2844120
        size = 76
#35 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x2844120) at
alloc.c:6953
No locals.
#36 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1894)
at alloc.c:7298
        ptr = 0x2844120
        pvectype = PVEC_BUFFER
        obj = 0x2844125
        po = <optimized out>
#37 0x0000000000589620 in mark_object (obj=obj <at> entry=0x597cfe3) at
alloc.c:7503
        sp = 1894
#38 0x000000000058a391 in mark_char_table (ptr=ptr <at> entry=0x8124ae8,
pvectype=pvectype <at> entry=PVEC_SUB_CHAR_TABLE) at alloc.c:6919
        val = 0x597cfe3
        size = 129
        i = 4
        idx = 1
#39 0x000000000058a3ee in mark_char_table (ptr=ptr <at> entry=0x8accab0,
pvectype=<optimized out>) at alloc.c:6916
        val = 0x8124aed
        size = 68
        i = 3
        idx = <optimized out>
#40 0x0000000000589398 in process_mark_stack (base_sp=base_sp <at> entry=1814)
at alloc.c:7340
        ptr = 0x8accab0
        pvectype = PVEC_CHAR_TABLE
        obj = 0x8accab5
        po = <optimized out>
#41 0x000000000058906a in mark_objects (objs=objs <at> entry=0x1eed6950,
n=n <at> entry=76) at alloc.c:7511
        sp = 1814
#42 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x1eed6948)
at alloc.c:6890
        ptr = 0x1eed6948
        size = 76
#43 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x1eed6948) at
alloc.c:6953
No locals.
#44 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1804)
at alloc.c:7298
        ptr = 0x1eed6948
        pvectype = PVEC_BUFFER
        obj = 0x1eed694d
        po = <optimized out>
#45 0x000000000058906a in mark_objects (objs=objs <at> entry=0x424fb788,
n=n <at> entry=76) at alloc.c:7511
        sp = 1804
#46 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x424fb780)
at alloc.c:6890
        ptr = 0x424fb780
        size = 76
#47 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x424fb780) at
alloc.c:6953
No locals.
#48 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1768)
at alloc.c:7298
        ptr = 0x424fb780
        pvectype = PVEC_BUFFER
        obj = 0x424fb785
        po = <optimized out>
#49 0x000000000058906a in mark_objects (objs=objs <at> entry=0x155524004988,
n=n <at> entry=76) at alloc.c:7511
        sp = 1768
#50 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x155524004980)
at alloc.c:6890
        ptr = 0x155524004980
        size = 76
#51 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x155524004980)
at alloc.c:6953
No locals.
#52 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1316)
at alloc.c:7298
        ptr = 0x155524004980
        pvectype = PVEC_BUFFER
        obj = 0x155524004985
        po = <optimized out>
#53 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 1316
#54 0x000000000058a429 in mark_interval_tree_1 (i=0x59fa5400,
dummy=<optimized out>) at alloc.c:1529
No locals.
#55 0x00000000006099c6 in traverse_intervals_noorder
(tree=tree <at> entry=0x59fa5400,
function=function <at> entry=0x58a417 <mark_interval_tree_1>, arg=arg <at> entry=0x0)
at intervals.c:243
No locals.
#56 0x00000000005855d7 in mark_interval_tree (i=0x59fa5400) at alloc.c:1538
No locals.
#57 0x00000000005892ab in process_mark_stack (base_sp=base_sp <at> entry=1314)
at alloc.c:7263
        ptr = 0x47849400
        obj = 0x47849404
        po = <optimized out>
#58 0x000000000058906a in mark_objects (objs=objs <at> entry=0x85f4c48,
n=n <at> entry=76)
at alloc.c:7511
        sp = 1314
#59 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x85f4c40)
at alloc.c:6890
        ptr = 0x85f4c40
        size = 76
#60 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x85f4c40) at
alloc.c:6953
No locals.
#61 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=1310)
at alloc.c:7298
        ptr = 0x85f4c40
        pvectype = PVEC_BUFFER
        obj = 0x85f4c45
        po = <optimized out>
#62 0x000000000058906a in mark_objects (objs=objs <at> entry=0x3423018,
n=n <at> entry=76)
at alloc.c:7511
        sp = 1310
#63 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x3423010)
at alloc.c:6890
        ptr = 0x3423010
        size = 76
#64 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x3423010) at
alloc.c:6953
No locals.
#65 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=668) at
alloc.c:7298
        ptr = 0x3423010
        pvectype = PVEC_BUFFER
        obj = 0x3423015
        po = <optimized out>
#66 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 668
#67 0x000000000058a429 in mark_interval_tree_1 (i=0x3f52298,
dummy=<optimized out>) at alloc.c:1529
No locals.
#68 0x00000000006099c6 in traverse_intervals_noorder (tree=0x3f52298,
tree <at> entry=0x3f52260, function=function <at> entry=0x58a417
<mark_interval_tree_1>, arg=arg <at> entry=0x0) at intervals.c:243
No locals.
#69 0x00000000005855d7 in mark_interval_tree (i=0x3f52260) at alloc.c:1538
No locals.
#70 0x00000000005892ab in process_mark_stack (base_sp=base_sp <at> entry=253) at
alloc.c:7263
        ptr = 0x43ec9d0
        obj = 0x43ec9d4
        po = <optimized out>
#71 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 253
#72 0x000000000058a429 in mark_interval_tree_1 (i=0x3ccecb40,
dummy=<optimized out>) at alloc.c:1529
No locals.
#73 0x00000000006099c6 in traverse_intervals_noorder
(tree=tree <at> entry=0x3ccecb40,
function=function <at> entry=0x58a417 <mark_interval_tree_1>, arg=arg <at> entry=0x0)
at intervals.c:243
No locals.
#74 0x00000000005855d7 in mark_interval_tree (i=0x3ccecb40) at alloc.c:1538
No locals.
#75 0x00000000005892ab in process_mark_stack (base_sp=base_sp <at> entry=247) at
alloc.c:7263
        ptr = 0x38263280
        obj = 0x38263284
        po = <optimized out>
#76 0x000000000058906a in mark_objects (objs=objs <at> entry=0x2c4eb428,
n=n <at> entry=76) at alloc.c:7511
        sp = 247
#77 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x2c4eb420)
at alloc.c:6890
        ptr = 0x2c4eb420
        size = 76
#78 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x2c4eb420) at
alloc.c:6953
No locals.
#79 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=243) at
alloc.c:7298
        ptr = 0x2c4eb420
        pvectype = PVEC_BUFFER
        obj = 0x2c4eb425
        po = <optimized out>
#80 0x000000000058906a in mark_objects (objs=objs <at> entry=0x5ef36fb8,
n=n <at> entry=76) at alloc.c:7511
        sp = 243
#81 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x5ef36fb0)
at alloc.c:6890
        ptr = 0x5ef36fb0
        size = 76
#82 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x5ef36fb0) at
alloc.c:6953
No locals.
#83 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=239) at
alloc.c:7298
        ptr = 0x5ef36fb0
        pvectype = PVEC_BUFFER
        obj = 0x5ef36fb5
        po = <optimized out>
#84 0x000000000058906a in mark_objects (objs=objs <at> entry=0xf405e8, n=n <at> entry=76)
at alloc.c:7511
        sp = 239
#85 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0xf405e0) at
alloc.c:6890
        ptr = 0xf405e0
        size = 76
#86 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0xf405e0) at
alloc.c:6953
No locals.
#87 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=235) at
alloc.c:7298
        ptr = 0xf405e0
        pvectype = PVEC_BUFFER
        obj = 0xf405e5
        po = <optimized out>
#88 0x000000000058906a in mark_objects (objs=objs <at> entry=0x8708ec0,
n=n <at> entry=76)
at alloc.c:7511
        sp = 235
#89 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x8708eb8)
at alloc.c:6890
        ptr = 0x8708eb8
        size = 76
#90 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x8708eb8) at
alloc.c:6953
No locals.
#91 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=230) at
alloc.c:7298
        ptr = 0x8708eb8
        pvectype = PVEC_BUFFER
        obj = 0x8708ebd
        po = <optimized out>
#92 0x000000000058906a in mark_objects (objs=objs <at> entry=0x1d5e6260,
n=n <at> entry=76) at alloc.c:7511
        sp = 230
#93 0x00000000005890a2 in mark_vectorlike (header=header <at> entry=0x1d5e6258)
at alloc.c:6890
        ptr = 0x1d5e6258
        size = 76
#94 0x000000000058a131 in mark_buffer (buffer=buffer <at> entry=0x1d5e6258) at
alloc.c:6953
No locals.
#95 0x0000000000589308 in process_mark_stack (base_sp=base_sp <at> entry=0) at
alloc.c:7298
        ptr = 0x1d5e6258
        pvectype = PVEC_BUFFER
        obj = 0x1d5e625d
        po = <optimized out>
#96 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 0
#97 0x00000000005897e1 in mark_object_root_visitor (root_ptr=<optimized
out>, type=<optimized out>, data=<optimized out>) at alloc.c:6396
No locals.
#98 0x0000000000583992 in visit_vectorlike_root (visitor=..., ptr=0xcebba0
<buffer_defaults>, type=type <at> entry=GC_ROOT_BUFFER_LOCAL_DEFAULT) at
alloc.c:6348
        size = 76
        i = 1
#99 0x00000000005839bd in visit_buffer_root (visitor=..., buffer=<optimized
out>, type=type <at> entry=GC_ROOT_BUFFER_LOCAL_DEFAULT) at alloc.c:6362
No locals.
#100 0x0000000000588fb9 in visit_static_gc_roots (visitor=...) at
alloc.c:6374
No locals.
#101 0x0000000000589a8a in garbage_collect () at alloc.c:6598
        tail = <optimized out>
        buffer = <optimized out>
        stack_top_variable = 0 '\000'
        message_p = false
        count = <optimized out>
        start = <optimized out>
        tot_before = 18446744073709551615
        visitor = <optimized out>
#102 0x0000000000589e54 in Fgarbage_collect () at alloc.c:6762
        count = <optimized out>
        gcst = {total_conses = 25252544, total_free_conses = 544,
total_symbols = 1779108229, total_free_symbols = 0, total_strings = 0,
total_free_strings = 5934425, total_string_bytes = 11, total_vectors =
45840, total_vector_slots = 1477306595, total_free_vector_slots =
492724829, total_floats = 0, total_free_floats = 0, total_intervals = 0,
total_free_intervals = 106650, total_buffers = 14970,
          total_hash_table_bytes = 5799327}
        total = {0x68260e9e, 0x59d82, 0x3a7a, 0x6059cc
<make_lisp_time+127>, 0x68260e9e, 0x0, 0xc7de00 <Scurrent_time>, 0x0, 0x0}
#103 0x00000000005aa3d3 in funcall_subr (subr=subr <at> entry=0xc6fee0
<Sgarbage_collect>, numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffd190)
at eval.c:3159
        argbuf = {0x5c659f13, 0x5ac1d9 <apply_lambda+76>, 0x2, 0x200,
0x389ef8d, 0x220, 0x2, 0x9a821eca03d5ad00}
        a = <optimized out>
        maxargs = 0
        fun = <optimized out>
#104 0x00000000005abdab in funcall_general (fun=0xc6fee5
<Sgarbage_collect+5>, numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffd190)
at /build/source/src/lisp.h:2243
        original_fun = 0x15554e36a1b0 <text_data_fdoc_blob+11280>
#105 0x00000000005a903e in Ffuncall (nargs=1, args=0x7fffffffd188) at
eval.c:3093
        count = {bytes = 384}
        val = <optimized out>
#106 0x000015553995b5ea in
F67636d682d69646c652d676172626167652d636f6c6c656374_gcmh_idle_garbage_collect_0
() from
/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/gcmh-f09b0fce-70d70e65.eln
No symbol table info available.
#107 0x00000000005aa3d3 in funcall_subr (subr=subr <at> entry=0x285c188,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffd4b8) at eval.c:3159
        argbuf = {0x580de943, 0x1d5e625d, 0x2, 0x5a770f
<do_one_unbind+319>, 0x1815260, 0x1c0, 0x6a0b0985, 0x0}
        a = <optimized out>
        maxargs = 0
        fun = <optimized out>
#108 0x00000000005abdab in funcall_general (fun=0x285c18d,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffffd4b8) at
/build/source/src/lisp.h:2243
        original_fun = 0x1b0c9f0
#109 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=1,
args=args <at> entry=0x7fffffffd4b0)
at eval.c:3093
        count = {bytes = 352}
        val = <optimized out>
#110 0x00000000005a9314 in Fapply (nargs=2, args=0x7fffffffd4b0) at
eval.c:2718
        i = <optimized out>
        funcall_nargs = <optimized out>
        funcall_args = 0x0
        spread_arg = 0x0
        fun = 0x1b0c9f0
        sa_avail = 16384
        sa_count = <optimized out>
        numargs = <optimized out>
        retval = <optimized out>
#111 0x00000000005aa4cd in funcall_subr (subr=subr <at> entry=0xc75b20 <Sapply>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffd4b0) at eval.c:3184
        maxargs = -2
        fun = <optimized out>
#112 0x00000000005abdab in funcall_general (fun=0xc75b25 <Sapply+5>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffd4b0) at
/build/source/src/lisp.h:2243
        original_fun = 0x3e10
#113 0x00000000005a903e in Ffuncall (nargs=3, args=0x7fffffffd4a8) at
eval.c:3093
        count = {bytes = 320}
        val = <optimized out>
#114 0x000015554e2e9ff8 in
F74696d65722d6576656e742d68616e646c6572_timer_event_handler_0 () from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
No symbol table info available.
#115 0x00000000005aa3de in funcall_subr (subr=subr <at> entry=0x15554f4aaf10,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffd688) at eval.c:3161
        argbuf = {0x12099370, 0x59778c <store_symval_forwarding+196>,
0xffffffe2, 0x1, 0xceb360 <mpz>, 0xceb360 <mpz>, 0x1, 0x9a821eca03d5ad00}
        a = <optimized out>
        maxargs = 1
        fun = <optimized out>
#116 0x00000000005abdab in funcall_general (fun=0x15554f4aaf15,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffd688) at
/build/source/src/lisp.h:2243
        original_fun = 0x11fd0
#117 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=2,
args=args <at> entry=0x7fffffffd680)
at eval.c:3093
        count = {bytes = 224}
        val = <optimized out>
#118 0x000000000052de9e in timer_check_2 (timers=<optimized out>,
timers <at> entry=0x580de363, idle_timers=<optimized out>,
idle_timers <at> entry=0x580de303)
at keyboard.c:4800
        count = <optimized out>
        old_deactivate_mark = 0x0
        idle_timer_ripe = <optimized out>
        timer = 0x309f10b5
        timer_time = {tv_sec = 1747324574, tv_nsec = 495326952}
        timer_difference = <optimized out>
        idle_timer_difference = <optimized out>
        ripe = <optimized out>
        idle_timer = <optimized out>
        idle_timer_time = {tv_sec = 60, tv_nsec = 0}
        difference = <optimized out>
        timer_ripe = true
        nexttime = <optimized out>
        now = <optimized out>
        idleness_now = <optimized out>
        chosen_timer = 0x309f10b5
#119 0x0000000000535b11 in timer_check () at keyboard.c:4866
        nexttime = <optimized out>
        timers = 0x580de363
        idle_timers = 0x580de303
        tem = 0x0
#120 0x00000000005f82a4 in wait_reading_process_output
(time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0,
read_kbd=read_kbd <at> entry=-1,
do_display=do_display <at> entry=true, wait_for_cell=wait_for_cell <at> entry=0x0,
wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at process.c:5434
        old_timers_run = 422754
        process_skipped = false
        wrapped = <optimized out>
        channel_start = <optimized out>
        child_fd = <optimized out>
        last_read_channel = 175
        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>
        MINIMUM = MINIMUM
        TIMEOUT = TIMEOUT
        FOREVER = FOREVER
        wait = FOREVER
        got_some_output = 4
        prev_wait_proc_nbytes_read = 0
        retry_for_async = false
        count = <optimized out>
        now = <optimized out>
#121 0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffdb18,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:4094
        do_display = true
        obj = <optimized out>
        str = <optimized out>
        had_pending_selection_requests = false
        had_pending_conversion_events = false
#122 0x00000000005370d4 in read_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb) at keyboard.c:2330
        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 = 0x6037b30
        count = <optimized out>
#123 0x000000000053724a in read_decoded_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
prev_event=prev_event <at> entry=0x0,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb)
at keyboard.c:2393
        nextevt = <optimized out>
        frame = <optimized out>
        terminal = <optimized out>
        events = {0x0, 0xffffffffffffffff, 0x0, 0x2be307e5, 0x0,
0x68260e9a, 0x3b5aa512, 0x0, 0x68260e9b, 0x4c79d6a, 0x0, 0xbebc200,
0x481ec5e3, 0x9a821eca03d5ad00, 0x481ec763, 0x9a821eca03d5ad00}
        n = 0
#124 0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x1e9da373,
prev_event=0x0, used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:3015
        c = 0x0
        local_getcjmp = {{__jmpbuf = {1, 7706832815941375015, 0, 20769285,
0, 13113857, -7706832817081920473, 7706832398608520231}, __mask_was_saved =
0, __saved_mask = {__val = {2, 0, 492724829, 508090, 5928719, 25252128,
5857403, 0, 68463280, 98959984, 5864240, 111478304, 5510427, 0, 4787692120,
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 = 0x6037b30
        jmpcount = <optimized out>
#125 0x0000000000539789 in read_key_sequence
(keybuf=keybuf <at> entry=0x7fffffffe1f0,
prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry=false,
can_return_switch_frame=can_return_switch_frame <at> entry=true,
fix_current_buffer=fix_current_buffer <at> entry=true,
prevent_redisplay=prevent_redisplay <at> entry=false,
disable_text_conversion_p=false) at keyboard.c:10743
        interrupted_kboard = 0x6037b30
        interrupted_frame = 0x13cea00
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = <optimized out>
        count = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 0x1e9da373
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = 0x1420f53, map = 0x1420f53, start = 0, end = 0}
        keytran = {parent = 0x15554f49541b, map = 0x15554f49541b, start =
0, end = 0}
        indec = {parent = 0x1420f63, map = 0x1420f63, start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = 0x0
        original_uppercase = 0x1f02c
        original_uppercase_position = -1
        disabled_conversion = false
        starting_buffer = 0x1d5e6258
        fake_prefixed_keys = 0x0
        first_event = 0x0
        second_event = <optimized out>
#126 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
        cmd = <optimized out>
        keybuf = {0xff00, 0x8708ebd, 0xfa2, 0x5982d3
<set_default_internal+530>, 0x7fffffffe270, 0x2, 0x30, 0x8708ebd, 0x0,
0x5a770f <do_one_unbind+319>, 0x7fffffffe2c0, 0x60, 0x0, 0x0, 0x0, 0x5a8d59
<unbind_to+105>, 0xb, 0x111c0, 0x30, 0x8708ebd, 0x7bc0, 0x9a821eca03d5ad00,
0xcf32a0 <globals>, 0x96c4d73, 0x60, 0x52f4c6 <cmd_error+363>, 0x0,
0x9a821eca03d5ad00, 0x60, 0x15554ed90d83}
        i = <optimized out>
        last_pt = <optimized out>
        prev_modiff = 19073
        prev_buffer = 0x1d5e6258
#127 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce
<command_loop_1>, handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b
<cmd_error>) at eval.c:1613
        val = <optimized out>
        c = 0xe0fab0
#128 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90) at
keyboard.c:1168
        val = <optimized out>
#129 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0,
func=func <at> entry=0x529294 <command_loop_2>, arg=arg <at> entry=0x90) at
eval.c:1292
        val = <optimized out>
        c = 0xea0d90
#130 0x000000000052926b in command_loop () at keyboard.c:1146
No locals.
#131 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
        count = <optimized out>
        val = <optimized out>
#132 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
        count = <optimized out>
        buffer = <optimized out>
#133 0x0000000000528660 in main (argc=<optimized out>, argv=0x7fffffffe5b8)
at emacs.c:2635
        stack_bottom_variable = 0x155553f0c318 <_gnutls_lib_state>
        old_argc = <optimized out>
        dump_file = 0x0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {rlim_cur = 18446744073709551615, rlim_max =
18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>


In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.18.2, Xaw3d scroll bars)
Windowing system distributor 'The Cygwin/X Project', version 11.0.12000000
System Description: Red Hat Enterprise Linux 8.10 (Ootpa)

Configured using:
 'configure
 --prefix=/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-cairo --without-xft --with-compress-install
 --with-toolkit-scroll-bars --with-native-compilation
 --without-imagemagick --with-mailutils --without-small-ja-dic
 --with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus
 --with-selinux'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $LC_CTYPE: C.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Python

Minor modes in effect:
  winum-mode: t
  lsp-diagnostics-mode: t
  lsp-modeline-workspace-status-mode: t
  lsp-modeline-diagnostics-mode: t
  lsp-modeline-code-actions-mode: t
  dap-tooltip-mode: t
  dap-ui-many-windows-mode: t
  dap-ui-controls-mode: t
  dap-ui-mode: t
  lsp-ui-mode: t
  lsp-ui-doc-mode: t
  lsp-ui-sideline-mode: t
  dap-auto-configure-mode: t
  dap-mode: t
  treemacs-filewatch-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  lsp-completion-mode: t
  pdf-occur-global-minor-mode: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  tree-sitter-hl-mode: t
  global-ts-fold-mode: t
  ts-fold-mode: t
  tree-sitter-mode: t
  pipenv-mode: t
  code-cells-mode: t
  whitespace-mode: t
  diff-hl-flydiff-mode: t
  which-key-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  corfu-history-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  nerd-icons-completion-mode: t
  marginalia-mode: t
  save-place-mode: t
  global-so-long-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  gcmh-mode: t
  winner-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  undo-fu-mode: t
  flycheck-popup-tip-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  editorconfig-mode: t
  delete-selection-mode: t
  centaur-tabs-mode: t
  persp-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  global-git-commit-mode: t
  server-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  savehist-mode: t
  recentf-mode: t
  doom-modeline-mode: t
  eros-mode: t
  vi-tilde-fringe-mode: t
  highlight-numbers-mode: t
  display-line-numbers-mode: t
  hl-todo-mode: t
  flyspell-lazy-mode: t
  flyspell-mode: t
  dtrt-indent-mode: t
  pixel-scroll-precision-mode: t
  lsp-managed-mode: t
  lsp-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  projectile-mode: t
  +lsp-optimization-mode: t
  +popup-mode: t
  general-override-mode: t
  apheleia-global-mode: t
  apheleia-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/codemill/panagopo/doomemacs/.local/straight/build-30.1/straight/straight
hides
/codemill/panagopo/doomemacs/.local/straight/repos/straight.el/straight
/codemill/panagopo/doomemacs/.local/straight/build-30.1/straight/straight-x
hides
/codemill/panagopo/doomemacs/.local/straight/repos/straight.el/straight-x
/codemill/panagopo/doomemacs/.local/straight/build-30.1/straight/straight-ert-print-hack
hides
/codemill/panagopo/doomemacs/.local/straight/repos/straight.el/straight-ert-print-hack
/codemill/panagopo/doomemacs/.local/straight/build-30.1/which-key/which-key
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/which-key
/codemill/panagopo/doomemacs/.local/straight/build-30.1/transient/transient
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/transient
/codemill/panagopo/doomemacs/.local/straight/build-30.1/jsonrpc/jsonrpc
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/jsonrpc
/codemill/panagopo/doomemacs/.local/straight/repos/straight.el/indent hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/indent
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig-tools
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig-tools
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig-fnmatch
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig-fnmatch
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig-core
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig-core
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig-core-handle
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig-core-handle
/codemill/panagopo/doomemacs/.local/straight/build-30.1/editorconfig/editorconfig-conf-mode
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/editorconfig-conf-mode
/codemill/panagopo/doomemacs/.local/straight/build-30.1/bind-key/bind-key
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/bind-key
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-lint
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-lint
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-jump
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-jump
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-ensure
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-ensure
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-ensure-system-package
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-ensure-system-package
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-diminish
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-diminish
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-delight
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-delight
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-core
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-core
/codemill/panagopo/doomemacs/.local/straight/build-30.1/use-package/use-package-bind-key
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-bind-key
/codemill/panagopo/doomemacs/.local/straight/build-30.1/xref/xref hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/progmodes/xref
/codemill/panagopo/doomemacs/.local/straight/build-30.1/project/project
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/progmodes/project
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-texinfo
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-texinfo
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-publish
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-publish
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-org hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-org
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-odt hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-odt
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-md hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-md
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-man hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-man
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-latex hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-latex
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-koma-letter
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-koma-letter
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-icalendar
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-icalendar
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-html hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-html
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-beamer hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-beamer
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ox-ascii hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ox-ascii
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-version
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-version
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-timer hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-timer
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-tempo hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-tempo
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-table hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-table
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-src hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-src
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-refile
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-refile
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-protocol
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-protocol
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-plot hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-plot
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-persist
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-persist
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-pcomplete
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-pcomplete
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-num hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-num
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-mouse hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-mouse
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-mobile
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-mobile
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-macs hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-macs
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-macro hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-macro
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-loaddefs
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-loaddefs
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-list hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-list
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-lint hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-lint
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-keys hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-keys
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-inlinetask
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-inlinetask
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-indent
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-indent
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-id hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-id
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-habit hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-habit
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-goto hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-goto
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-footnote
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-footnote
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-fold hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-fold
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-fold-core
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-fold-core
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-feed hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-feed
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-faces hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-faces
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-entities
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-entities
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-element
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-element
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-element-ast
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-element-ast
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-duration
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-duration
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-datetree
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-datetree
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-cycle hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-cycle
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-ctags hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-ctags
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-crypt hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-crypt
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-compat
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-compat
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-colview
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-colview
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-clock hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-clock
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-capture
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-capture
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-attach
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-attach
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-attach-git
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-attach-git
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-archive
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-archive
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/org-agenda
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/org-agenda
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-w3m hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-w3m
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-rmail hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-rmail
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-mhe hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-mhe
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-man hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-man
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-irc hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-irc
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-info hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-info
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-gnus hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-gnus
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-eww hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-eww
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-eshell hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-eshell
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-doi hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-doi
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-docview
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-docview
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-bibtex hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-bibtex
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ol-bbdb hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ol-bbdb
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc-natbib hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc-natbib
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc-csl hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc-csl
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc-bibtex hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc-bibtex
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc-biblatex
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc-biblatex
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/oc-basic hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/oc-basic
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-tangle hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-tangle
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-table hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-table
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-sqlite hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-sqlite
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-sql hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-sql
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-shell hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-shell
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-sed hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-sed
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-screen hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-screen
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-scheme hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-scheme
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-sass hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-sass
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-ruby hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-ruby
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-ref hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-ref
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-python hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-python
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-processing
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-processing
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-plantuml
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-plantuml
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-perl hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-perl
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-org hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-org
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-octave hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-octave
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-ocaml hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-ocaml
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-maxima hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-maxima
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-matlab hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-matlab
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-makefile
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-makefile
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-lua hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-lua
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-lob hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-lob
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-lisp hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-lisp
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-lilypond
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-lilypond
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-latex hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-latex
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-julia hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-julia
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-js hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-js
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-java hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-java
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-haskell
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-haskell
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-groovy hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-groovy
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-gnuplot
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-gnuplot
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-fortran
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-fortran
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-forth hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-forth
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-exp hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-exp
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-eval hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-eval
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-eshell hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-eshell
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-emacs-lisp
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-emacs-lisp
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-dot hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-dot
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-ditaa hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-ditaa
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-css hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-css
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-core hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-core
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-comint hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-comint
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-clojure
hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-clojure
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-calc hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-calc
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-awk hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-awk
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-R hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-R
/codemill/panagopo/doomemacs/.local/straight/build-30.1/org/ob-C hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/org/ob-C
/codemill/panagopo/doomemacs/.local/straight/build-30.1/seq/seq hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/seq
/codemill/panagopo/doomemacs/.local/straight/build-30.1/eldoc/eldoc hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc
/codemill/panagopo/doomemacs/.local/straight/build-30.1/compat/compat hides
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/compat

Features:
(shadow sort mail-extr emacsbug jupyter-python jupyter-org-client
jupyter-zmq-channel-ioloop jupyter-zmq-channel jupyter-channel
jupyter-channel-ioloop jupyter-ioloop zmq-core zmq
jupyter-kernel-process repeat consult-flycheck consult help-fns
radix-tree winum lsp-diagnostics lsp-modeline lsp-icons dap-mouse dap-ui
gdb-mi gud bui bui-list bui-info bui-entry bui-core bui-history
bui-button bui-utils lsp-lens lsp-ui lsp-ui-flycheck lsp-ui-doc
goto-addr lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util view
lsp-zig lsp-yang lsp-yaml lsp-xml lsp-wgsl lsp-volar lsp-vimscript
lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typespec
lsp-typeprof lsp-ttcn3 lsp-ts-query lsp-trunk lsp-toml lsp-tilt lsp-tex
lsp-svelte lsp-steep lsp-sqls lsp-sql lsp-sorbet lsp-solidity
lsp-solargraph lsp-semgrep lsp-rust lsp-ruff lsp-ruby-syntax-tree
lsp-ruby-lsp lsp-rubocop lsp-roslyn lsp-roc lsp-rf lsp-remark lsp-racket
lsp-r lsp-qml lsp-pylsp lsp-pyls lsp-pwsh lsp-purescript lsp-postgres
lsp-pls lsp-php lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml
find-file lsp-nushell lsp-nix lsp-nim lsp-nginx lsp-nextflow lsp-move
lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-matlab lsp-marksman lsp-markdown
lsp-magik lsp-fennel lsp-lua lsp-lisp lsp-kubernetes-helm lsp-kotlin
lsp-json lsp-jq lsp-javascript dap-java dap-mode dap-tasks dap-launch
posframe dap-overlays lsp-java request lsp-idris lsp-haxe lsp-hack
lsp-groovy lsp-graphql lsp-golangci-lint lsp-glsl lsp-gleam lsp-gdscript
lsp-fsharp lsp-futhark lsp-fortran lsp-eslint lsp-erlang lsp-emmet
lsp-elm lsp-elixir lsp-earthly lsp-dockerfile lsp-docker lsp-dhall lsp-d
lsp-cypher lsp-cucumber lsp-copilot lsp-css lsp-c3 lsp-csharp
lsp-crystal lsp-credo lsp-cobol lsp-cmake lsp-clojure treemacs-magit
treemacs-nerd-icons lsp-treemacs lsp-treemacs-generic
lsp-treemacs-themes treemacs-treelib treemacs-persp treemacs-projectile
treemacs treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros lsp-clangd
lsp-bufls lsp-go lsp-completion lsp-beancount lsp-bash lsp-awk
lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular lsp-ada
lsp-semantic-tokens lsp-actionscript ccls ccls-member-hierarchy
ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree ccls-code-lens
ccls-semantic-highlight ccls-common macrostep-c cmacexp macrostep
toc-org org-eldoc org-appear org-modern org-indent pdf-sync pdf-annot
facemenu pdf-outline pdf-links pdf-history pdf-occur tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch
pdf-misc pdf-tools saveplace-pdf-view pdf-view pdf-cache pdf-info tq
pdf-util pdf-macs image-mode exif vc-hg vc-svn nose cl smartparens-c
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs gptel-magit gptel gptel-openai emacsql-sqlite-builtin
flycheck-cython cython-mode writegood-mode cdlatex adaptive-wrap
reftex-dcr reftex-auc reftex reftex-loaddefs reftex-vars preview
tex-mode font-latex latexenc smartparens-latex latex latex-flymake
tex-ispell tex-style tex dbus texmathp auctex perl-mode fish-mode
ahk-mode conf-mode yaml-mode jka-compr tree-sitter-langs
tree-sitter-langs-build tree-sitter-hl ts-fold ts-fold-summary
ts-fold-parsers ts-fold-util mule-util tree-sitter tree-sitter-load
tree-sitter-cli tsc tsc-dyn tsc-dyn-get dired-aux tsc-obsolete pipenv
code-cells smartparens-python pyvenv eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util python
hide-mode-line vterm magit-bookmark bookmark term ehelp vterm-module
term/xterm xterm vc-git auto-minor-mode disp-table whitespace
highlight-quoted rainbow-delimiters diff-hl-flydiff vertico-sort
vertico-directory vertico-repeat which-key better-jumper corfu-history
corfu-popupinfo corfu vertico-multiform vertico orderless
nerd-icons-completion marginalia saveplace tramp-sh jupyter-tramp
tramp-cache time-stamp tramp trampver tramp-integration files-x
tramp-message tramp-compat tramp-loaddefs so-long diff-hl log-view
vc-dir vc vc-dispatcher gcmh winner undo-fu-session undo-fu
flycheck-popup-tip popup flymake flycheck-package package-lint finder
finder-inf lisp-mnt flycheck ws-butler editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch delsel centaur-tabs
centaur-tabs-interactive centaur-tabs-functions centaur-tabs-elements
powerline powerline-separators powerline-themes doom-themes-ext-org
doom-moonlight-theme doom-themes doom-themes-base nav-flash pulse
cus-edit cus-start cus-load persp-mode org-capture org-agenda
org-element org-persist xdg org-id org-element-ast avl-tree generator
org-refile oc-csl citeproc citeproc-itemgetters parsebib citeproc-cite
citeproc-biblatex citeproc-bibtex ol-bibtex citeproc-subbibs
citeproc-sort citeproc-name citeproc-formatters citeproc-proc
citeproc-disamb citeproc-itemdata citeproc-generic-elements
citeproc-macro citeproc-choose citeproc-date citeproc-number
smartparens-rst rst citeproc-context citeproc-prange citeproc-style
citeproc-locale citeproc-term citeproc-rt citeproc-lib citeproc-s queue
bibtex smartparens-org org ob-emacs-lisp org-table org-loaddefs ob
ob-tangle ol ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script
smie treesit executable org-keys oc-biblatex oc ob-comint ob-core
org-cycle org-fold ob-eval org-pcomplete org-list org-footnote
org-fold-core org-entities org-faces org-version org-compat org-macs
find-func cal-menu calendar cal-loaddefs code-review code-review-actions
code-review-comment code-review-section code-review-bitbucket
code-review-faces emojify apropos tar-mode arc-mode archive-mode
code-review-gitlab code-review-utils forge-repos forge-tablist hl-line
forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs forge-gitea gtea forge-gitlab glab forge-github forge-forgejo
forge-notify forge-revnote forge-pullreq forge-issue forge-discussion
forge-topic yaml eieio-custom bug-reference forge-post forge-repo forge
forge-core forge-db code-review-parse-hunk code-review-github
code-review-db uuidgen calc-misc calc-ext calc calc-loaddefs rect
calc-macs a code-review-interfaces deferred ghub-graphql treepy gsexp
ghub gnutls closql emacsql-sqlite emacsql emacsql-compiler
magit-autoloads magit-submodule magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff diff-mode track-changes magit-core magit-autorevert
autorevert magit-margin magit-transient package url-handlers git-commit
log-edit message sendmail yank-media dired dired-loaddefs rfc822 mml
mml-sec epa gnus-util mm-decode mm-bodies mm-encode mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log magit-process
magit-mode transient edmacro kmacro benchmark magit-git magit-base
magit-section format-spec cursor-sensor crm llama with-editor shell
pcomplete server yasnippet elisp-mode savehist recentf doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path
nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon eros vi-tilde-fringe
highlight-numbers parent-mode display-line-numbers hl-todo compat
flyspell-lazy flyspell ispell dtrt-indent pixel-scroll cua-base
lsp-pyright lsp-mode lsp-protocol xref tree-widget wid-edit spinner
network-stream smartparens-config smartparens-markdown smartparens-text
smartparens advice loadhist markdown-mode edit-indirect color noutline
outline lv inline imenu ht filenotify f s ewoc epg rfc6068 epg-config
dash descyter jupyter jupyter-server jupyter-server-kernel
jupyter-rest-api url-http url-auth mail-parse rfc2231 rfc2047 rfc2045
mm-util ietf-drums mail-prsvr url-gw nsm jupyter-repl face-remap
jupyter-widget-client websocket bindat simple-httpd pp jupyter-client
jupyter-kernel jupyter-kernelspec jupyter-env jupyter-monads
jupyter-messages parse-time iso8601 time-date hmac-def jupyter-mime shr
pixel-fill kinsoku url-file puny svg xml dom browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source
password-cache url-vars mailcap jupyter-base json map eieio-base eieio
eieio-core projectile project byte-opt grep compile text-property-search
comint ansi-osc ansi-color ring ibuffer-vc ibuf-ext ibuffer
ibuffer-loaddefs thingatpt let-alist ibuf-macs derived doom-editor
doom-projects doom-ui doom-keybinds use-package-core general info
tex-site comp comp-cstr cl-extra help-mode warnings icons comp-run
bytecomp byte-compile comp-common rx :system easy-mmode doom-start doom
doom-lib cl-seq cl-macs cl-loaddefs cl-lib doom-compat gv harfbuzz
jansson dynamic-modules pcase subr-x rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty move-toolbar make-network-process native-compile
emacs)

Memory information:
((conses 16 2279550 658655) (symbols 48 111071 4) (strings 32 398461 46513)
 (string-bytes 1 19465306) (vectors 16 171027) (vector-slots 8 2650262
375408)
 (floats 8 5795 4985) (intervals 56 87342 4720) (buffers 992 365))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 16 May 2025 06:48:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: George P <georgepanagopo <at> gmail.com>
Cc: 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 16 May 2025 09:47:13 +0300
> From: George P <georgepanagopo <at> gmail.com>
> Date: Thu, 15 May 2025 14:45:09 -0400
> 
> I am experiencing crashes during GC, and I have no idea what causes these crashes or how to reproduce
> them consistently.

Can you describe what you were doing at the time of the crash?

> I have posted another crash without debugging symbols in
> https://lists.gnu.org/archive/html/emacs-devel/2024-11/msg00724.html. This time, I was running emacs in
> gdb, the trace is below. Seems to be related to bug#38936.

I'm not sure this is related to bug#38936: that one seemed to be
fixed, and there's no process_mark_stack in the backtrace there.  But
maybe this is indeed the same problem.

> (gdb) bt full
> #0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273

Please show the details of 'v'.  Like this:

  (gdb) frame 0
  (gdb) p v
  (gdb) p/x v->header

Also, you've elided the part where GDB says what fatal signal was
delivered.  I'm guessing it was SIGSEGV, but please show that part of
what GDB displayed when it kicked in.

Please keep the crashed session inside GDB in case we want you to look
around and report more data.

> #105 0x00000000005a903e in Ffuncall (nargs=1, args=0x7fffffffd188) at eval.c:3093
>         count = {bytes = 384}
>         val = <optimized out>
> #106 0x000015553995b5ea in
> F67636d682d69646c652d676172626167652d636f6c6c656374_gcmh_idle_garbage_collect_0 () from
> /u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/gcmh-f09b0fce-70d70e65.eln
> No symbol table info available.
> #107 0x00000000005aa3d3 in funcall_subr (subr=subr <at> entry=0x285c188, numargs=numargs <at> entry=0,
> args=args <at> entry=0x7fffffffd4b8) at eval.c:3159
>         argbuf = {0x580de943, 0x1d5e625d, 0x2, 0x5a770f <do_one_unbind+319>, 0x1815260, 0x1c0,
> 0x6a0b0985, 0x0}
>         a = <optimized out>
>         maxargs = 0
>         fun = <optimized out>
> #108 0x00000000005abdab in funcall_general (fun=0x285c18d, numargs=numargs <at> entry=0,
> args=args <at> entry=0x7fffffffd4b8) at /build/source/src/lisp.h:2243
>         original_fun = 0x1b0c9f0
> #109 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=1, args=args <at> entry=0x7fffffffd4b0) at
> eval.c:3093
>         count = {bytes = 352}
>         val = <optimized out>
> #110 0x00000000005a9314 in Fapply (nargs=2, args=0x7fffffffd4b0) at eval.c:2718
>         i = <optimized out>
>         funcall_nargs = <optimized out>
>         funcall_args = 0x0
>         spread_arg = 0x0
>         fun = 0x1b0c9f0
>         sa_avail = 16384
>         sa_count = <optimized out>
>         numargs = <optimized out>
>         retval = <optimized out>
> #111 0x00000000005aa4cd in funcall_subr (subr=subr <at> entry=0xc75b20 <Sapply>,
> numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffffd4b0) at eval.c:3184
>         maxargs = -2
>         fun = <optimized out>
> #112 0x00000000005abdab in funcall_general (fun=0xc75b25 <Sapply+5>, numargs=numargs <at> entry=2,
> args=args <at> entry=0x7fffffffd4b0) at /build/source/src/lisp.h:2243
>         original_fun = 0x3e10
> #113 0x00000000005a903e in Ffuncall (nargs=3, args=0x7fffffffd4a8) at eval.c:3093
>         count = {bytes = 320}
>         val = <optimized out>
> #114 0x000015554e2e9ff8 in F74696d65722d6576656e742d68616e646c6572_timer_event_handler_0 ()
> from
> /nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
> 
> No symbol table info available.
> #115 0x00000000005aa3de in funcall_subr (subr=subr <at> entry=0x15554f4aaf10,
> numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffffd688) at eval.c:3161
>         argbuf = {0x12099370, 0x59778c <store_symval_forwarding+196>, 0xffffffe2, 0x1, 0xceb360 <mpz>,
> 0xceb360 <mpz>, 0x1, 0x9a821eca03d5ad00}
>         a = <optimized out>
>         maxargs = 1
>         fun = <optimized out>
> #116 0x00000000005abdab in funcall_general (fun=0x15554f4aaf15, numargs=numargs <at> entry=1,
> args=args <at> entry=0x7fffffffd688) at /build/source/src/lisp.h:2243
>         original_fun = 0x11fd0
> #117 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fffffffd680) at
> eval.c:3093
>         count = {bytes = 224}
>         val = <optimized out>
> #118 0x000000000052de9e in timer_check_2 (timers=<optimized out>, timers <at> entry=0x580de363,
> idle_timers=<optimized out>, idle_timers <at> entry=0x580de303) at keyboard.c:4800

This part seems to indicate you run something called
gcmh-idle-garbage-collect, which triggers GC from a timer function?
If so, please describe what you do with this and show the relevant
code.

In general, please describe anything related to GC and timers that you
customized in your sessions, as that could be relevant to the nature
and the reasons of this bug.

Also, what is the memory footprint of the crashed Emacs process?

> In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
> version 1.18.2, Xaw3d scroll bars)
> Windowing system distributor 'The Cygwin/X Project', version 11.0.12000000
> System Description: Red Hat Enterprise Linux 8.10 (Ootpa)

Does this mean you run Emacs on a Red Hat system via the Cygwin X
implementation that runs on Windows?

Anything else that is "unusual" in your sessions?  Please don't save
us any such details, as they might be relevant, or provide important
clues as to where to look for the causes.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 16 May 2025 10:43:02 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 16 May 2025 10:41:51 +0000
"George P" <georgepanagopo <at> gmail.com> writes:
> Hi,
>
> I am experiencing crashes during GC, and I have no idea what causes
> these crashes or how to reproduce them consistently.

If you can reproduce it at all, we probably need a live gdb session or
(slightly worse) a core dump to debug this further, because not all
information is in the backtrace.

> I have posted another
> crash without debugging symbols in https://lists.gnu.org/archive/html/emacs-devel/2024-11/msg00724.html. This time, I was running emacs in gdb, the
> trace is below. Seems to be related to bug#38936.

Are you capturing coredumps ("gcore" in gdb after the crash; it's best
to do this even if you keep the gdb session alive) or keeping the gdb
sessions alive?  That would help provide further information which might
allow us to track this down.

In particular, last_marked and last_marked_index would be very
interesting.

> (gdb) bt full
> #0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273

> No locals.
> #1  0x00000000005892bc in process_mark_stack (base_sp=base_sp <at> entry=2188) at alloc.c:7276
>         ptr = 0x4000000023000008
>         pvectype = <optimized out>
>         obj = 0x400000002300000d

That's a pseudovector header (for a font spec), but we've mistaken it
for a Lisp object.  The most likely reason is that a vector was freed
and partly re-used for this pseudovector, but it was still reachable
somehow, and we tried accessing it again after it was freed.

We need to look at last_marked, to find out which of the 76 slots in a
buffer object contained (directly or indirectly) this stale object, and
then try to figure out how it got there.

> Configured using:
>  'configure
>  --prefix=/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1
>  --disable-build-details --with-modules --with-x-toolkit=lucid
>  --with-cairo --without-xft --with-compress-install
>  --with-toolkit-scroll-bars --with-native-compilation
>  --without-imagemagick --with-mailutils --without-small-ja-dic
>  --with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus
>  --with-selinux'

I've looked a little at unusual code which would be enabled by this
configuration, but apart from this strangeness in
x_default_scroll_bar_color_parameter, I couldn't find anything:

      AUTO_STRING (foreground, "foreground");
      AUTO_STRING (background, "foreground");

I suspect no one's using X resources to set the background color of
scroll bars...

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 16 May 2025 17:47:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>, Eli Zaretskii <eliz <at> gnu.org>
Cc: 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 16 May 2025 13:45:36 -0400
[Message part 1 (text/plain, inline)]
>
> Can you describe what you were doing at the time of the crash?


I was not doing anything in particular (editing a latex file with LaTeX/PS
mode). These crashes have happened to me at very random times. The only
thing that I have been suspecting could be causing this is viewing org-mode
buffers that have special fontification. I have
https://github.com/awth13/org-appear and https://github.com/minad/org-modern
installed, and previously I had
https://github.com/integral-dw/org-superstar-mode. I had just viewed an org
file before the crash.

Please show the details of 'v'.  Like this:
>
>   (gdb) frame 0
>   (gdb) p v
>   (gdb) p/x v->header
>
> Also, you've elided the part where GDB says what fatal signal was
> delivered.  I'm guessing it was SIGSEGV, but please show that part of
> what GDB displayed when it kicked in.
>
> Please keep the crashed session inside GDB in case we want you to look
> around and report more data.
>

Unfortunately, I don't have the program running (because I foolishly
thought I could continue from the crash). I do have the core however, here
is what you both asked for:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273

warning: 4273   alloc.c: No such file or directory
[Current thread is 1 (LWP 691035)]
warning: File "/nix/store/ji2c308n46lfvpi9jpr3ma8rqq42wx3p-glib-2.82.4/lib/
libgobject-2.0.so.0.8200.4-gdb.py" auto-loading has been declined by your
`auto-load safe-path' set to "$debugdir:$datadir/auto-load".
warning: File "/nix/store/ji2c308n46lfvpi9jpr3ma8rqq42wx3p-glib-2.82.4/lib/
libglib-2.0.so.0.8200.4-gdb.py" auto-loading has been declined by your
`auto-load safe-path' set to "$debugdir:$datadir/auto-load".
warning: File "/nix/store/8ryr50ic059w32djkygs1g1kxdpj7dgx-isl-0.20/lib/
libisl.so.19.1.0-gdb.py" auto-loading has been declined by your `auto-load
safe-path' set to "$debugdir:$datadir/auto-load".
warning: File
"/nix/store/fjyh571wr8ifsw1h6j2nx22fmjj91b6y-gcc-14-20241116-lib/lib/libstdc++.
so.6.0.33-gdb.py" auto-loading has been declined by your `auto-load
safe-path' set to "$debugdir:$datadir/auto-load".
(gdb) frame 0
#0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273
4273    in alloc.c
(gdb) p v
$1 = (const struct Lisp_Vector *) 0x4000000023000008
(gdb) p/x v->header
Cannot access memory at address 0x4000000023000008
(gdb) set print elements 0
(gdb) p last_marked
$2 = {0x15554ea7b163, 0x1f3eb0, 0x15554ea7b153, 0x15554ea7b113, 0x10710,
0x15554ea7b103, 0xe344f4, 0x2237643, 0x10da0, 0x2237633, 0x15554de36280,
0xc64485 <Sselected_window+5>, 0x15554de5d268, 0x13ff3ad, 0x2, 0x1d373234,
0x46ddbcd, 0x15554de5d450, 0x15554df5c948, 0x60, 0x0, 0x15554ec524dd,
0x15554eb23723, 0x0, 0x15554eb24c65, 0x0, 0x0, 0xa, 0x10710,
0x15554df5c8b8, 0x60, 0x0, 0x0, 0x0, 0x3e10, 0x15554e014d50, 0x60, 0x0,
  0x15554ed0a8e5, 0x15554eb2b183, 0x0, 0x15554eb73b0d, 0x0, 0x0, 0x16,
0x7842613, 0x1d54f9e4, 0x31d4a, 0x9839b1d, 0x1818f8b3, 0x9540, 0x1818f873,
0x1818f893, 0x3d80, 0x1818f883, 0x30, 0x1818f853, 0x30, 0x0, 0x1ce4e9ad,
0x1be0b704, 0x18505ee3, 0x18505f03, 0xdc20, 0xa, 0x18505eb3, 0x18505ec3,
0xdb90, 0x2, 0x18505e43, 0x18505e93, 0x96c0, 0x18505e83, 0x3a, 0x18505e73,
0xa, 0x18505e53, 0x6, 0x4d533dd, 0x20ccaced, 0x1818fc43,
  0x9540, 0x1818fc33, 0x0, 0x1818fc13, 0xe460, 0x0, 0x1ce4e9ad, 0x0, 0x0,
0x30, 0x20ccad45, 0x179dfc73, 0x9540, 0x179dfc63, 0x0, 0x179dfc03,
0x179dfc53, 0x15554de617c0, 0x179dfc13, 0x1bb24600, 0x60, 0x18502db3,
0x95a0, 0x18502dc3, 0x18502f33, 0x0, 0x18502f43, 0x466b42d, 0x406,
0x1d49ebc4, 0x46cfcd5, 0x15554e0bd5c8
<F756e6971756966792d726174696f6e616c697a65_uniquify_rationalize_0+744>,
0x60, 0x1475f63, 0x95a0, 0x1475f53,
  0x2242473, 0x248c664, 0x2242433, 0x1475f03, 0x4290, 0x1475ef3, 0x103f8b4,
0x1475ee3, 0x103f8d4, 0x1475ed3, 0x0, 0x1475ec3, 0x0, 0x1475f43, 0x0,
0x1475f33, 0x15554edb315b, 0x4290, 0x15554edb316b, 0x15554eb8d5fc,
0x15554edb317b, 0x15554edb318c, 0x15554eb2c6b3, 0x24b5b4d, 0x0, 0x0,
0x245d955, 0x0, 0x0, 0x15554e0bd578
<F756e6971756966792d726174696f6e616c697a65_uniquify_rationalize_0+664>,
0x60, 0x2242523, 0x15554de31ee0,
  0x2242513, 0x24b5c25, 0x15554de31ee0, 0x15554e0bd578
<F756e6971756966792d726174696f6e616c697a65_uniquify_rationalize_0+664>,
0x2242b13, 0x2242ad3, 0x2242753, 0x15554dfd07e8, 0x127db30, 0x2242b23,
0x15554ece9985, 0x15554de35860, 0x15554dff3f28, 0x15554ece9985,
0x15554ece9abb, 0x10140, 0x15554ece9acb, 0x30, 0x0, 0x192, 0x15554ece9a15,
0x606, 0x15554ece9a6c, 0x15554ece9a45, 0x15554de35288, 0x15554ece9a5b,
0x15554dfd0818,
  0x16, 0x15554eb2b3a4, 0x15554ece99b5, 0x606, 0x15554ece99f4,
0x15554ece99e5, 0x7b60, 0x12, 0x15554eb2b2d4, 0x2242ac3, 0x15554eb2b275,
0x22429d3, 0x2242993, 0x2, 0x222be93, 0x15554f00ebbd, 0x2242983,
0x15554eb2b275, 0x2220813, 0x251724d, 0x15554de323b8, 0x22207c3, 0x1ee26a3,
0x15554e3190c8 <top_level_run+728>, 0x1ee26b3, 0xa49d00 <pure+3488800>,
0x60, 0x226e9d3, 0x15554de5a568, 0x226e9c3, 0x1f73c54, 0x226ea63,
  0x15554de5ec50, 0x226ea53, 0x226ea83, 0x1eea8c3, 0x15554e26ab80
<F7363726f6c6c2d6261722d746f6f6c6b69742d7363726f6c6c_scroll_bar_toolkit_scroll_0+1136>,
0x60, 0x42c7a73, 0x13e60, 0x42c7a63, 0x42c7a53, 0x15554def15c8, 0x42c7a43,
0xc197c0 <pure+5388000>, 0x42c7a33, 0x36df2c0, 0x60, 0x0, 0x43f78f5,
0x42caeb3, 0x0, 0x4384d5d, 0x0, 0x0, 0x42c7a93, 0x15554dea8fb0, 0x42c7a83,
0x43d4c94, 0x0, 0x1eea8d3, 0x15554de48168,
  0x1eea8e3, 0x1f73cf4, 0x1eea8f3, 0x1f73d14, 0x226ea73, 0x1eea873,
0x1253d0, 0x1eea883, 0x15554de48168, 0x1eea893, 0x1f73cb4, 0x1eea8a3,
0x1f73cd4, 0x226ea43, 0x1eea7f3, 0x1253d0, 0x1eea813, 0x15554de48168,
0x1eea823, 0x1f73c74, 0x1eea833, 0x1f73c94, 0x226eba3, 0x15554de30d68,
0x226eb93, 0x226eb83, 0x226eb73, 0xb0eba0 <pure+4295360>, 0x15554dfc0740,
0x60, 0x1f652493, 0x15554de32c08, 0x1f6524a3, 0x124f290, 0x60, 0x0,
  0x538cb05, 0x1f67b0c3, 0x9540, 0x1f67b093, 0x1f67b0b3, 0x30, 0x1f67b0a3,
0x30, 0x1f67b083, 0x30, 0x0, 0x1baba95d, 0x20bef7e4, 0x1f67e3e3,
0x1f67e3f3, 0xdc20, 0xa, 0x1f67e3c3, 0x1f67e3d3, 0xdb90, 0x2, 0x1f67e1d3,
0x1f67e3b3, 0x96c0, 0x1f67e3a3, 0x3a, 0x1f67e393, 0xa, 0x1f67e1e3, 0x6,
0x979f79d, 0x9492115, 0x1f67b4f3, 0x9540, 0x1f67b353, 0x1f67b393, 0x30,
0x1f67b383, 0x30, 0x1f67b373, 0x3d80, 0x1f67b363, 0x30,
  0x1f67b343, 0x30, 0x0, 0x1baba95d, 0x0, 0x0, 0x30, 0x949216d, 0x1f67b323,
0x9540, 0x1f67b2e3, 0x1f67b313, 0x30, 0x1f67b303, 0x30, 0x1f67b2f3, 0x30,
0x1f67b2d3, 0x30, 0x0, 0x1baba95d, 0x0, 0x0, 0x30, 0x94921c5, 0x1f67b163,
0x9540, 0x1f67b153, 0x0, 0x1f67b0f3, 0xe460, 0x0, 0x1baba95d, 0x0, 0x0,
0x30, 0x949221d, 0x1f67b2b3, 0x9540, 0x1f67b2a3, 0x0, 0x1f67b263,
0x1f67b293, 0xafe0, 0x1f67b283, 0xa2, 0x1f67b273, 0xa2, 0x0,
  0x1baba95d, 0x0, 0x0, 0x30, 0x9492275, 0x1f67b243, 0x9540, 0x1f67b233,
0x0, 0x1f67b203, 0x1f67b223, 0x15554de617c0, 0x1f67b213, 0x15554df1a3a0,
0x60, 0x1f641ba3, 0x95a0, 0x1f641bb3, 0x1f641bc3, 0x8ae5574, 0x1f641bd3,
0x15554ec0ff33, 0x4290, 0x15554ec0ff43, 0x15554ec0ff84, 0x15554ec0ff53,
0x15554ec0ff64, 0x15554eb2c6b3, 0x38294cd, 0x1f6463e3, 0x9540, 0x1f6463a3,
0x1f6463d3, 0x30, 0x1f6463c3, 0x3d50, 0x1f6463b3, 0x30,
  0x1f646393, 0x30, 0x0, 0x98e7985, 0x8f680f4, 0x1f647ac3, 0x1f647ad3,
0xdc20, 0xa, 0x1f647aa3, 0x1f647ab3, 0xdb90, 0x2, 0x1f647a53, 0x1f647a93,
0x96c0, 0x1f647a83, 0x3a, 0x1f647a73, 0xa, 0x1f647a63, 0x6, 0x98e79dd,
0x98f1d0d, 0x0, 0x400000002300000d, 0x0, 0x27f62ad, 0x0, 0x0, 0x60,
0x2235443, 0x10da0, 0x2235433, 0x30, 0xc6d2a5
<Sactive_minibuffer_window+5>, 0x15554defbf98, 0x60, 0x15554ea7b0c3,
0x15554de5dc98,
  0x15554ea7b0b3, 0xe33ed5, 0x606, 0xe34c84, 0xe33eb5, 0x15554de78758,
0x15554defbf98, 0xe33e85, 0x606, 0xe35054, 0xe33e6d, 0x10710, 0x60,
0x15554f053c7b, 0x7da0, 0x15554f053c8b, 0x11850, 0x60, 0x15554f4abdeb,
0x7da0, 0x15554f4abdfb, 0x11850, 0x15554f4abe0b, 0x7e00, 0x15554f4abe1b,
0x15554f4abeab, 0x11850, 0x15554f4abe2b, 0x7dd0, 0x15554f4abe3b,
0x15554f4abe8b, 0x11850, 0x15554f4abe9b, 0x2, 0x15554f4abe4b, 0xd530,
  0x15554f4abe5b, 0x15554f4abe6b, 0x15554f4abe7b, 0x2, 0x11850, 0x0,
0x15554f053c9b, 0x7e00, 0x15554f053cab, 0x15554f053d3b, 0x10710,
0x15554f053cbb, 0x7dd0, 0x15554f053ccb, 0x15554f053d1b, 0x10710,
0x15554f053d2b, 0x2, 0x15554f053cdb, 0xd530, 0x15554f053ceb,
0x15554f053cfb, 0x15554f053d0b, 0x2, 0x10710, 0xc643c5 <Sselect_window+5>,
0x3de0, 0x1a, 0xe35074, 0x1e, 0xe35094}
(gdb) p last_marked_index
$3 = 431



This part seems to indicate you run something called
> gcmh-idle-garbage-collect, which triggers GC from a timer function?
> If so, please describe what you do with this and show the relevant
> code.
>
> In general, please describe anything related to GC and timers that you
> customized in your sessions, as that could be relevant to the nature
> and the reasons of this bug.
>
>
Yes, I am using gcmh (
https://github.com/emacsmirror/gcmh/blob/master/gcmh.el). I have these
parameters for it:

(setq gcmh-idle-delay 'auto  ; default is 15s
      gcmh-auto-idle-delay-factor 10
      gcmh-high-cons-threshold (* 64 1024 1024))  ; 64mb

I don't think that there is anything else GC related that I am using.

Also, what is the memory footprint of the crashed Emacs process?
>

Hard for me to say. I restored my session and this is the memory-report for
that session. I would assume that the crashed session is 2-3 times larger:

Estimated Emacs Memory Usage

   133 MiB  Overall Object Memory Usage
    83 MiB  Total Buffer Memory Usage
    40 MiB  Reserved (But Unused) Object Memory
    34 MiB  Memory Used By Global Variables
    13 MiB  Memory Used By Symbol Plists
   2.6 KiB  Total Image Cache Size

Object Storage

    49 MiB  Conses
    42 MiB  Strings
    25 MiB  Vectors
    11 MiB  Intervals
   5.2 MiB  Symbols
   359 KiB  Buffer-Objects
    54 KiB  Floats

Largest Buffers

   7.1 MiB  REPL-useq
   5.6 MiB  alloc.c
   4.4 MiB  fish_history
   3.3 MiB   *code-conversion-work*
   2.1 MiB  vat.pdf
     2 MiB  VTerm ~/scratch
   1.9 MiB  ta.py
   1.9 MiB  loom.pdf
   1.6 MiB  REPL-9_useq<2>
   1.6 MiB  REPL-9_useq
   1.6 MiB  specification.py
   1.5 MiB  loom-oos.pdf
   1.4 MiB  REPL-jpeq
   1.2 MiB  uf.py
   1.2 MiB  xterm.c
   1.2 MiB  *Messages*
   1.1 MiB  REPL-peeq
   1.1 MiB  fc-monitor.py
   865 KiB  vat.tex
   843 KiB  VTerm /v/l/s/coredump

Largest Variables

     3 MiB  kill-ring
     3 MiB  kill-ring-yank-pointer
   2.4 MiB  undo-equiv-table
   2.2 MiB  package-lint-symbol-info
   2.2 MiB  load-history
   2.2 MiB  lsp--session
   1.8 MiB  lsp-modeline--diagnostics-wks->strings
   813 KiB  nerd-icons/mdicon-alist
   709 KiB  easy-menu-converted-items-table
   707 KiB  persp-buffer-props-hash
   653 KiB  *persp-hash*
   652 KiB  info-lookup-cache
   625 KiB  treemacs--themes
   547 KiB  treemacs--scope-storage
   513 KiB  face--new-frame-defaults
   436 KiB  centaur-tabs-display-hash
   402 KiB  file-notify-descriptors
   389 KiB  minor-mode-map-alist
   388 KiB  yank-menu
   374 KiB  centaur-tabs--buffers

Does this mean you run Emacs on a Red Hat system via the Cygwin X
> implementation that runs on Windows?


Correct.

Anything else that is "unusual" in your sessions?  Please don't save
> us any such details, as they might be relevant, or provide important
> clues as to where to look for the causes.
>

I am using doomemacs (https://github.com/doomemacs/doomemacs) so my
configuration is very large and mostly not written by me. I don't think
there is anything particularly unusual with it though.

In particular, last_marked and last_marked_index would be very
> interesting.


 I have included that in the gdb trace above. Please, let me know if there
is anything else I can dig out from the core.

Thanks!
George



On Fri, May 16, 2025 at 6:41 AM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
> > Hi,
> >
> > I am experiencing crashes during GC, and I have no idea what causes
> > these crashes or how to reproduce them consistently.
>
> If you can reproduce it at all, we probably need a live gdb session or
> (slightly worse) a core dump to debug this further, because not all
> information is in the backtrace.
>
> > I have posted another
> > crash without debugging symbols in
> https://lists.gnu.org/archive/html/emacs-devel/2024-11/msg00724.html.
> This time, I was running emacs in gdb, the
> > trace is below. Seems to be related to bug#38936.
>
> Are you capturing coredumps ("gcore" in gdb after the crash; it's best
> to do this even if you keep the gdb session alive) or keeping the gdb
> sessions alive?  That would help provide further information which might
> allow us to track this down.
>
> In particular, last_marked and last_marked_index would be very
> interesting.
>
> > (gdb) bt full
> > #0  vector_marked_p (v=v <at> entry=0x4000000023000008) at alloc.c:4273
>
> > No locals.
> > #1  0x00000000005892bc in process_mark_stack (base_sp=base_sp <at> entry=2188)
> at alloc.c:7276
> >         ptr = 0x4000000023000008
> >         pvectype = <optimized out>
> >         obj = 0x400000002300000d
>
> That's a pseudovector header (for a font spec), but we've mistaken it
> for a Lisp object.  The most likely reason is that a vector was freed
> and partly re-used for this pseudovector, but it was still reachable
> somehow, and we tried accessing it again after it was freed.
>
> We need to look at last_marked, to find out which of the 76 slots in a
> buffer object contained (directly or indirectly) this stale object, and
> then try to figure out how it got there.
>
> > Configured using:
> >  'configure
> >  --prefix=/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1
> >  --disable-build-details --with-modules --with-x-toolkit=lucid
> >  --with-cairo --without-xft --with-compress-install
> >  --with-toolkit-scroll-bars --with-native-compilation
> >  --without-imagemagick --with-mailutils --without-small-ja-dic
> >  --with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus
> >  --with-selinux'
>
> I've looked a little at unusual code which would be enabled by this
> configuration, but apart from this strangeness in
> x_default_scroll_bar_color_parameter, I couldn't find anything:
>
>       AUTO_STRING (foreground, "foreground");
>       AUTO_STRING (background, "foreground");
>
> I suspect no one's using X resources to set the background color of
> scroll bars...
>
> Pip
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 16 May 2025 18:37:04 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 16 May 2025 18:36:21 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

>  Can you describe what you were doing at the time of the crash?
>
> I was not doing anything in particular (editing a latex file with LaTeX/PS mode). These crashes have happened to me at very random times. The only
> thing that I have been suspecting could be causing this is viewing org-mode buffers that have special fontification. I have
> https://github.com/awth13/org-appear and https://github.com/minad/org-modern installed, and previously I had
> https://github.com/integral-dw/org-superstar-mode. I had just viewed an org file before the crash.

I suspect it's an X problem, but that may be totally wrong.  It may well
be related to fonts rather than the xterm.c code.

> Unfortunately, I don't have the program running (because I foolishly thought I could continue from the crash). I do have the core however, here is what
> you both asked for:

Thank you! Unfortunately, the buffer object itself is not contained
within the 512 last_marked elements.  Can you also produce the output of

    x/77gx 0x15554f39bca8

so we can see which of the buffer elements we got to?

>  0x1f646393, 0x30, 0x0, 0x98e7985, 0x8f680f4, 0x1f647ac3, 0x1f647ad3, 0xdc20, 0xa, 0x1f647aa3, 0x1f647ab3, 0xdb90, 0x2, 0x1f647a53,
> 0x1f647a93, 0x96c0, 0x1f647a83, 0x3a, 0x1f647a73, 0xa, 0x1f647a63, 0x6, 0x98e79dd, 0x98f1d0d, 0x0, 0x400000002300000d, 0x0, 0x27f62ad, 0x0,

That's "gccjit", 14, 2, 1, interspersed with some cons cells, then two
vectors or pseudovectors, Qnil, and the bogus object.  So we probably
dumped a compiled unit's data, then returned to the vectors or
pseudovectors, which would be interesting.

Can you provide the output of:

    p *XVECTOR(0x98e79dd)
    x/32gx $.contents
    p *XVECTOR(0x98f1d0d)
    x/32gx $.contents

>  Also, what is the memory footprint of the crashed Emacs process?
>
> Hard for me to say. I restored my session and this is the memory-report for that session. I would assume that the crashed session is 2-3 times larger:

The size of the core file might provide a good ballpark number.
"objdump -h /path/to/core" may reveal even more about how much memory
was in use.

>  Does this mean you run Emacs on a Red Hat system via the Cygwin X
>  implementation that runs on Windows?
>
> Correct.

Can you say more about that?  Are you running using a remote X server,
or some kind of tunnel setup, or is this some sort of WSL or VM setup?
It's relevant because remote X sessions have very different timing
characteristics, and different code for determining mouse positions is
in use.

Can you also include the output of

    p *terminal_list->display_info

and as much of the output of

    p *terminal_list->display_info.x

as you're comfortable with (x_id_name might be something you would want
to redact), as well as

    p Vx_use_fast_mouse_position

Background: I have a vague hunch that commit
ced135ebdbfb0eea719ce165a454e7ff0b681e88 is part of the problem.  This
replaced the staticpro'd global variable last_mouse_scroll_bar by an
element of dpyinfo (with the same name) which does not appear to be
protected from GC.  (The same is true of the last_mouse_frame,
last_mouse_glyph_frame, last_mouse_motion_frame,
x_pending_autoraise_frame elements of dpyinfo, and a few others...  I
don't understand why these aren't GC-protected, and there is no comment
clearly explaining they shouldn't be, so we could try adding protection
to them and seeing whether that fixes the crashes).

Thank you, and sorry for requesting so much information!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 16 May 2025 19:26:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 16 May 2025 15:25:20 -0400
[Message part 1 (text/plain, inline)]
No worries, happy to provide as much info as I can. Unfortunately, gdb
shows XVECTOR as not defined, and I am not sure what the right code to run
for my platform should be.

(gdb) p *XVECTOR(0x98e79dd)
No symbol "XVECTOR" in current context.
(gdb) x/77gx 0x15554f39bca8
0x15554f39bca8: 0x400000000d02f04c      0x000015554f39c08c
0x15554f39bcb8: 0x0000000000000000      0x0000000000000000
0x15554f39bcc8: 0x0000000000ee7cc4      0x0000000000000000
0x15554f39bcd8: 0x0000000000000002      0x0000000000000000
0x15554f39bce8: 0x0000000000000000      0x000015554f39c13d
0x15554f39bcf8: 0x00000000217994b3      0x000000000000d1d0
0x15554f39bd08: 0x0000000021799a93      0x000015554f00256c
0x15554f39bd18: 0x00000000056eaea3      0x0000000000000000
0x15554f39bd28: 0x0000000002268813      0x000015554efee21b
0x15554f39bd38: 0x000015554ef7e9fd      0x000015554efedf45
0x15554f39bd48: 0x000015554ee4ea15      0x0000000000000012
0x15554f39bd58: 0x0000000000000142      0x0000000000000002
0x15554f39bd68: 0x0000000000000000      0x000015554ee1d095
0x15554f39bd78: 0x000015554ee0c815      0x000015554ee2db55
0x15554f39bd88: 0x000015554ee1d2d5      0x0000000000000000
0x15554f39bd98: 0x0000000000000030      0x0000000000000030
0x15554f39bda8: 0x000000000000c0c0      0x000000000000c0c0
0x15554f39bdb8: 0x0000000000000000      0x0000000000000000
0x15554f39bdc8: 0x0000000000000000      0x0000000000000030
0x15554f39bdd8: 0x0000000000000000      0x0000000000000000
0x15554f39bde8: 0x0000000000000000      0x0000000000000000
0x15554f39bdf8: 0x0000000000000030      0x0000000000013710
0x15554f39be08: 0x0000000000000000      0x0000000000000030
0x15554f39be18: 0x0000000000000030      0x0000000000000000
0x15554f39be28: 0x0000000000000000      0x0000000000000000
0x15554f39be38: 0x0000000000000000      0x0000000000000000
0x15554f39be48: 0x0000000000000000      0x0000000000000030
0x15554f39be58: 0x0000000000000000      0x0000000000000856
0x15554f39be68: 0x0000000000000002      0x0000000000000002
0x15554f39be78: 0x0000000000000000      0x0000000000000000
0x15554f39be88: 0x0000000000000030      0x0000000000000000
0x15554f39be98: 0x0000000000000000      0x0000000000000030
0x15554f39bea8: 0x0000000000000030      0x0000000000000000
0x15554f39beb8: 0x0000000000000000      0x0000000021799c83
0x15554f39bec8: 0x000015554ed34bc3      0x00000000025ef753
0x15554f39bed8: 0x0000000000000000      0x0000000000000000
0x15554f39bee8: 0x0000000000000030      0x0000000000000000
0x15554f39bef8: 0x0000000000000000      0x0000000000000000
0x15554f39bf08: 0x0000000000000000
(gdb) p terminal_list->display_info
$1 = {tty = 0x7f3ed10, x = 0x7f3ed10, w32 = 0x7f3ed10, ns = 0x7f3ed10, pgtk
= 0x7f3ed10, haiku = 0x7f3ed10, android = 0x7f3ed10}
(gdb) p *terminal_list->display_info.x
$2 = {next = 0x0, terminal = 0x1405888, display = 0x37c7c70, connection =
13, name_list_element = 0x1420f43, reference_count = 3, untrusted = false,
screen = 0x4ddf5f0, resx = 144, resy = 144, visual = 0x91f9660, visual_info
= {visual = 0x91f9660, visualid = 33, screen = 0, depth = 24, class = 4,
red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size =
256, bits_per_rgb = 8}, pict_format = 0x5c86b68,
  cmap = 32, n_planes = 24, grabbed = 0, icon_bitmap_id = 1, root_window =
789, client_leader_window = 0, vertical_scroll_bar_cursor = 2097154,
horizontal_scroll_bar_cursor = 2097155, invisible_cursor = 2097160,
fixes_pointer_blanking = false, rdb = 0x97e9ab0, smallest_char_width = 1,
smallest_font_height = 2, scratch_cursor_gc = 0x69687d0, mouse_highlight =
{mouse_face_beg_row = -1, mouse_face_beg_col = -1,
    mouse_face_beg_x = 448, mouse_face_end_row = -1, mouse_face_end_col =
-1, mouse_face_end_x = 0, mouse_face_window = 0x0, mouse_face_face_id = 72,
mouse_face_overlay = 0x0, mouse_face_mouse_frame = 0x13cea00,
mouse_face_mouse_x = 308, mouse_face_mouse_y = 1144, mouse_face_past_end =
false, mouse_face_defer = false, mouse_face_hidden = false}, x_id = 1,
x_id_name = REDACTED,
  n_fonts = 74, bitmaps = 0x632aac0, bitmaps_size = 10, bitmaps_last = 1,
meta_mod_mask = 8, shift_lock_mask = 0, alt_mod_mask = 0, super_mod_mask =
64, hyper_mod_mask = 0, Xatom_wm_protocols = 233, Xatom_wm_take_focus =
236, Xatom_wm_save_yourself = 333, Xatom_wm_delete_window = 234,
Xatom_wm_change_state = 238, Xatom_wm_state = 247,
Xatom_wm_configure_denied = 334, Xatom_wm_window_moved = 335,
  Xatom_wm_client_leader = 336, Xatom_wm_transient_for = 68, Xatom_editres
= 337, Xatom_CLIPBOARD = 323, Xatom_TIMESTAMP = 338, Xatom_TEXT = 339,
Xatom_DELETE = 340, Xatom_COMPOUND_TEXT = 325, Xatom_UTF8_STRING = 239,
Xatom_MULTIPLE = 341, Xatom_INCR = 327, Xatom_EMACS_TMP = 342,
Xatom_TARGETS = 326, Xatom_NULL = 344, Xatom_ATOM = 4, Xatom_ATOM_PAIR =
345, Xatom_CLIPBOARD_MANAGER = 346,
  Xatom_EMACS_SERVER_TIME_PROP = 343, Xatom_PIXEL_SIZE = 97,
Xatom_AVERAGE_WIDTH = 102, Xatom_MULE_BASELINE_OFFSET = 349,
Xatom_MULE_RELATIVE_COMPOSE = 350, Xatom_MULE_DEFAULT_ASCENT = 351,
Xatom_DONE = 352, Xatom_PAGE = 353, Xatom_Scrollbar = 354,
Xatom_Horizontal_Scrollbar = 355, Xatom_XEMBED = 356, Xatom_XEMBED_INFO =
347, Xatom_NET_WM_CM_Sn = 322, Xatom_MOTIF_WM_HINTS = 243,
Xatom_MOTIF_DRAG_WINDOW = 386,
  Xatom_MOTIF_DRAG_TARGETS = 387, Xatom_MOTIF_DRAG_AND_DROP_MESSAGE = 388,
Xatom_MOTIF_DRAG_INITIATOR_INFO = 389, Xatom_MOTIF_DRAG_RECEIVER_INFO =
390, Xatom_EMACS_DRAG_ATOM = 348, Xatom_XmTRANSFER_SUCCESS = 391,
Xatom_XmTRANSFER_FAILURE = 392, Xatom_DndProtocol = 393, Xatom_DND_PROTOCOL
= 394, Xatom_text_plain_charset_utf_8 = 395, Xatom_LENGTH = 396,
Xatom_FILE_NAME = 397, Xatom_CHARACTER_POSITION = 398,
  Xatom_LINE_NUMBER = 399, Xatom_COLUMN_NUMBER = 400, Xatom_OWNER_OS = 401,
Xatom_HOST_NAME = 402, Xatom_USER = 403, Xatom_CLASS = 404, Xatom_NAME =
405, Xatom_SAVE_TARGETS = 406, x_focus_frame = 0x13cea00,
x_focus_event_frame = 0x13cea00, highlight_frame = 0x13cea00,
x_pending_autoraise_frame = 0x0, last_mouse_frame = 0x13cea00,
last_mouse_glyph_frame = 0x0, last_mouse_motion_frame = 0x13cea00,
  last_mouse_scroll_bar = 0x0, last_user_time = 2180587218,
last_mouse_motion_x = 308, last_mouse_motion_y = 1144, last_mouse_glyph =
{x = 297, y = 1129, width = 12, height = 24}, last_mouse_movement_time =
2180362343, last_mouse_movement_time_send_event = false, gray = 2097156,
xim = 0x0, xim_styles = 0x0, xim_callback_data = 0x1526290,
preferred_xim_style = 0, xim_coding = 0x0, use_xim = true, color_names =
0x40db850,
  color_names_length = 0x6c54640, color_names_size = 256, color_cells =
0x0, ncolor_cells = 0, red_bits = 8, blue_bits = 8, green_bits = 8,
alpha_bits = 0, red_offset = 16, blue_offset = 0, green_offset = 8,
alpha_offset = 0, alpha_mask = 0, wm_type = X_WMTYPE_UNKNOWN, x_dnd_atoms =
0x78d1b90, x_dnd_atoms_size = 16, x_dnd_atoms_length = 7, motif_drag_atom =
0, motif_drag_atom_name = '\000' <repeats 32 times>,
  motif_drag_atom_time = 0, motif_drag_atom_owner = 0x0, motif_drag_window
= 0, Xatom_net_supported = 248, Xatom_net_supporting_wm_check = 256,
net_supported_atoms = 0x0, nr_net_supported_atoms = 0, net_supported_window
= 0, Xatom_net_window_type = 245, Xatom_net_window_type_tooltip = 293,
Xatom_net_active_window = 254, Xatom_net_wm_state = 241,
Xatom_net_wm_state_fullscreen = 306,
  Xatom_net_wm_state_maximized_horz = 301,
Xatom_net_wm_state_maximized_vert = 300, Xatom_net_wm_state_sticky = 299,
Xatom_net_wm_state_above = 307, Xatom_net_wm_state_below = 308,
Xatom_net_wm_state_hidden = 305, Xatom_net_wm_state_skip_taskbar = 303,
Xatom_net_wm_state_shaded = 302, Xatom_net_frame_extents = 277,
Xatom_net_current_desktop = 242, Xatom_net_workarea = 255,
Xatom_net_wm_opaque_region = 364,
  Xatom_net_wm_ping = 278, Xatom_net_wm_sync_request = 279,
Xatom_net_wm_sync_request_counter = 280, Xatom_net_wm_sync_fences = 358,
Xatom_net_wm_frame_drawn = 360, Xatom_net_wm_frame_timings = 361,
Xatom_net_wm_user_time = 275, Xatom_net_wm_user_time_window = 276,
Xatom_net_client_list_stacking = 250, Xatom_net_wm_pid = 273,
Xatom_net_wm_bypass_compositor = 359, Xatom_xsettings_sel = 407,
Xatom_xsettings_prop = 363,
  Xatom_xsettings_mgr = 283, xsettings_window = 0, Xatom_net_wm_name = 235,
Xatom_net_wm_icon_name = 266, Xatom_net_wm_window_opacity = 357,
Xatom_SM_CLIENT_ID = 362, Xatom_XdndAware = 366, Xatom_XdndSelection = 367,
Xatom_XdndTypeList = 368, Xatom_XdndActionCopy = 369, Xatom_XdndActionMove
= 370, Xatom_XdndActionLink = 371, Xatom_XdndActionAsk = 372,
Xatom_XdndActionPrivate = 373, Xatom_XdndActionList = 374,
  Xatom_XdndActionDescription = 375, Xatom_XdndProxy = 376, Xatom_XdndEnter
= 377, Xatom_XdndPosition = 378, Xatom_XdndStatus = 379, Xatom_XdndLeave =
380, Xatom_XdndDrop = 381, Xatom_XdndFinished = 382, Xatom_XdndDirectSave0
= 383, Xatom_XdndActionDirectSave = 384, Xatom_text_plain = 385, Xatom_Meta
= 135, Xatom_Super = 136, Xatom_Hyper = 137, Xatom_ShiftLock = 365,
Xatom_Alt = 126, modmap = 0x0, ext_codes = 0x1526378,
  xcb_connection = 0x8321690, xcb_visual = 0x8f2d4d4, supports_xdbe = true,
supports_xi2 = true, xi2_version = 3, xi2_opcode = 131, num_devices = 6,
devices = 0x419d830, pending_keystroke_time = 0, pending_keystroke_source =
0, client_pointer_device = -1, supports_xkb = true, xkb_event_type = 84,
xkb_desc = 0x6053aa0, xrender_supported_p = true, xrender_major = 0,
xrender_minor = 11, xfixes_supported_p = true,
  xfixes_major = 5, xfixes_minor = 0, xfixes_event_base = 85,
xsync_supported_p = true, xsync_major = 3, xsync_minor = 1,
xshape_supported_p = true, xshape_major = 1, xshape_minor = 1,
xshape_event_base = 64, xshape_error_base = 0, protected_windows =
0x5684f70, n_protected_windows = 0, protected_windows_max = 256,
screen_width = 10811, screen_height = 3563, screen_mm_width = 0,
screen_mm_height = 0,
  failable_requests = {{start = 127683431, end = 127683431,
selection_serial = 0}, {start = 127683437, end = 127683437,
selection_serial = 0}, {start = 126335699, end = 126335699,
selection_serial = 0}, {start = 126335704, end = 126335704,
selection_serial = 0}, {start = 45081149, end = 45081149, selection_serial
= 0}, {start = 45081155, end = 45081155, selection_serial = 0}, {start = 0,
end = 0,
      selection_serial = 0} <repeats 122 times>}, next_failable_request =
0x7f3f4a0, monitored_selections = 0x15262b0, selection_tracking_window =
2097162, n_monitored_selections = 1, pending_dnd_time = 0,
server_time_monotonic_p = false, server_time_offset = 1703287940194,
quit_keysym = 0, quit_keysym_time = 0}
(gdb) p Vx_use_fast_mouse_position
$3 = (Lisp_Object) 0x0
(gdb)


The size of the core file might provide a good ballpark number.
> "objdump -h /path/to/core" may reveal even more about how much memory
> was in use.


The output of obdjump is very large:

> objdump -h
core.emacs.25439.669e118996bc4380b12acba32b3b7be4.691035.1747332087000000 |
wc -l
13285

> du -h
core.emacs.25439.669e118996bc4380b12acba32b3b7be4.691035.1747332087000000
4.7G
 core.emacs.25439.669e118996bc4380b12acba32b3b7be4.691035.1747332087000000

Can you say more about that?  Are you running using a remote X server,
> or some kind of tunnel setup, or is this some sort of WSL or VM setup?
> It's relevant because remote X sessions have very different timing
> characteristics, and different code for determining mouse positions is
> in use.
>

This is not WSL or VM. I use PUTTY on Windows 10 to connect to a remote
Linux host (which is running the emacs daemon), and then I open the emacs
frame (emacsclient) with X forwarding using Cygwin/X.

Thanks!
George

On Fri, May 16, 2025 at 2:36 PM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
>
> >  Can you describe what you were doing at the time of the crash?
> >
> > I was not doing anything in particular (editing a latex file with
> LaTeX/PS mode). These crashes have happened to me at very random times. The
> only
> > thing that I have been suspecting could be causing this is viewing
> org-mode buffers that have special fontification. I have
> > https://github.com/awth13/org-appear and
> https://github.com/minad/org-modern installed, and previously I had
> > https://github.com/integral-dw/org-superstar-mode. I had just viewed an
> org file before the crash.
>
> I suspect it's an X problem, but that may be totally wrong.  It may well
> be related to fonts rather than the xterm.c code.
>
> > Unfortunately, I don't have the program running (because I foolishly
> thought I could continue from the crash). I do have the core however, here
> is what
> > you both asked for:
>
> Thank you! Unfortunately, the buffer object itself is not contained
> within the 512 last_marked elements.  Can you also produce the output of
>
>     x/77gx 0x15554f39bca8
>
> so we can see which of the buffer elements we got to?
>
> >  0x1f646393, 0x30, 0x0, 0x98e7985, 0x8f680f4, 0x1f647ac3, 0x1f647ad3,
> 0xdc20, 0xa, 0x1f647aa3, 0x1f647ab3, 0xdb90, 0x2, 0x1f647a53,
> > 0x1f647a93, 0x96c0, 0x1f647a83, 0x3a, 0x1f647a73, 0xa, 0x1f647a63, 0x6,
> 0x98e79dd, 0x98f1d0d, 0x0, 0x400000002300000d, 0x0, 0x27f62ad, 0x0,
>
> That's "gccjit", 14, 2, 1, interspersed with some cons cells, then two
> vectors or pseudovectors, Qnil, and the bogus object.  So we probably
> dumped a compiled unit's data, then returned to the vectors or
> pseudovectors, which would be interesting.
>
> Can you provide the output of:
>
>     p *XVECTOR(0x98e79dd)
>     x/32gx $.contents
>     p *XVECTOR(0x98f1d0d)
>     x/32gx $.contents
>
> >  Also, what is the memory footprint of the crashed Emacs process?
> >
> > Hard for me to say. I restored my session and this is the memory-report
> for that session. I would assume that the crashed session is 2-3 times
> larger:
>
> The size of the core file might provide a good ballpark number.
> "objdump -h /path/to/core" may reveal even more about how much memory
> was in use.
>
> >  Does this mean you run Emacs on a Red Hat system via the Cygwin X
> >  implementation that runs on Windows?
> >
> > Correct.
>
> Can you say more about that?  Are you running using a remote X server,
> or some kind of tunnel setup, or is this some sort of WSL or VM setup?
> It's relevant because remote X sessions have very different timing
> characteristics, and different code for determining mouse positions is
> in use.
>
> Can you also include the output of
>
>     p *terminal_list->display_info
>
> and as much of the output of
>
>     p *terminal_list->display_info.x
>
> as you're comfortable with (x_id_name might be something you would want
> to redact), as well as
>
>     p Vx_use_fast_mouse_position
>
> Background: I have a vague hunch that commit
> ced135ebdbfb0eea719ce165a454e7ff0b681e88 is part of the problem.  This
> replaced the staticpro'd global variable last_mouse_scroll_bar by an
> element of dpyinfo (with the same name) which does not appear to be
> protected from GC.  (The same is true of the last_mouse_frame,
> last_mouse_glyph_frame, last_mouse_motion_frame,
> x_pending_autoraise_frame elements of dpyinfo, and a few others...  I
> don't understand why these aren't GC-protected, and there is no comment
> clearly explaining they shouldn't be, so we could try adding protection
> to them and seeing whether that fixes the crashes).
>
> Thank you, and sorry for requesting so much information!
>
> Pip
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 17 May 2025 08:54:01 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 17 May 2025 08:52:51 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

> No worries, happy to provide as much info as I can. Unfortunately, gdb shows XVECTOR as not defined, and I am not sure what the right code to run
> for my platform should be.
>
> (gdb) p *XVECTOR(0x98e79dd)
> No symbol "XVECTOR" in current context.

Can you try this (subtracting 5 from the tagged pointer to get the base
pointer, then printing its memory region):

     x/32gx 0x98e79d8
     x/32gx 0x98f1d08

> (gdb) x/77gx 0x15554f39bca8

Unfortunately, I don't see any overlap between that and the last_marked
entries.  Might have worked with an even larger LAST_MARKED_SIZE.

> (gdb) p terminal_list->display_info
> $1 = {tty = 0x7f3ed10, x = 0x7f3ed10, w32 = 0x7f3ed10, ns = 0x7f3ed10, pgtk = 0x7f3ed10, haiku = 0x7f3ed10, android = 0x7f3ed10}
> (gdb) p *terminal_list->display_info.x
>   Xatom_LINE_NUMBER = 399, Xatom_COLUMN_NUMBER = 400, Xatom_OWNER_OS = 401, Xatom_HOST_NAME = 402, Xatom_USER = 403,
> Xatom_CLASS = 404, Xatom_NAME = 405, Xatom_SAVE_TARGETS = 406, x_focus_frame = 0x13cea00, x_focus_event_frame = 0x13cea00,
> highlight_frame = 0x13cea00, x_pending_autoraise_frame = 0x0, last_mouse_frame = 0x13cea00, last_mouse_glyph_frame = 0x0,
> last_mouse_motion_frame = 0x13cea00,
>   last_mouse_scroll_bar = 0x0, last_user_time = 2180587218, last_mouse_motion_x = 308, last_mouse_motion_y = 1144, last_mouse_glyph = {x =

No dangling pointers here, as far as I can see.

>  Can you say more about that?  Are you running using a remote X server,
>  or some kind of tunnel setup, or is this some sort of WSL or VM setup?
>  It's relevant because remote X sessions have very different timing
>  characteristics, and different code for determining mouse positions is
>  in use.
>
> This is not WSL or VM. I use PUTTY on Windows 10 to connect to a remote Linux host (which is running the emacs daemon), and then I open the
> emacs frame (emacsclient) with X forwarding using Cygwin/X.

Thank you, that makes sense!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 17 May 2025 17:21:01 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 17 May 2025 13:20:33 -0400
[Message part 1 (text/plain, inline)]
>
> Can you try this (subtracting 5 from the tagged pointer to get the base
> pointer, then printing its memory region):
>
>      x/32gx 0x98e79d8
>      x/32gx 0x98f1d08
>

(gdb) x/32gx 0x98e79d8
0x98e79d8:      0xc00000000e008000      0x0000000020e10970
0x98e79e8:      0x0000000003aa20d0      0x0000000003aa1ac0
0x98e79f8:      0x00000000006e9960      0x000000002265f480
0x98e7a08:      0x0000001a0000001a      0x0000400700000060
0x98e7a18:      0x0000000000000000      0x400000000e008000
0x98e7a28:      0x000000001bfdbe90      0x0000000020e10b80
0x98e7a38:      0x000000001bfdb880      0x00000000006e98e0
0x98e7a48:      0x000000001fd792e0      0x0000001a0000001a
0x98e7a58:      0x0000400700000060      0x0000000000000000
0x98e7a68:      0x400000001f000005      0x0000000000000606
0x98e7a78:      0x0000000008ae5654      0x000000001b78fe2d
0x98e7a88:      0x0000000000000012      0x0000000008ae5674
0x98e7a98:      0x400000001f000005      0x0000000000000606
0x98e7aa8:      0x0000000008ae5694      0x000000001c32b8dd
0x98e7ab8:      0x000000000000000e      0x0000000008ae5674
0x98e7ac8:      0x000000000000000e      0x000015554de5d450
(gdb) x/32gx 0x98f1d08
0x98f1d08:      0x8000000000000002      0x0000000000000000
0x98f1d18:      0x400000002300000d      0x0000000000000000
0x98f1d28:      0x0000000003eaec10      0x00000000019e1500
0x98f1d38:      0x0000000000000000      0x000000000000b640
0x98f1d48:      0x0000000000000000      0x0000000000019082
0x98f1d58:      0x0000000000019102      0x000000000000004e
0x98f1d68:      0x0000000000000000      0x0000000000000192
0x98f1d78:      0x0000000000000002      0x0000000000000000
0x98f1d88:      0x400000002300000d      0x0000000000000000
0x98f1d98:      0x0000000003eaec10      0x00000000019e1500
0x98f1da8:      0x0000000000000000      0x000000000000b640
0x98f1db8:      0x0000000000000000      0x0000000000019082
0x98f1dc8:      0x0000000000019102      0x000000000000004e
0x98f1dd8:      0x0000000000000000      0x0000000000000192
0x98f1de8:      0x0000000000000002      0x0000000000000000
0x98f1df8:      0x400000002300000d      0x0000000000000000
(gdb)

Let me know if you need anything further!

Thanks!
George

On Sat, May 17, 2025 at 4:52 AM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
>
> > No worries, happy to provide as much info as I can. Unfortunately, gdb
> shows XVECTOR as not defined, and I am not sure what the right code to run
> > for my platform should be.
> >
> > (gdb) p *XVECTOR(0x98e79dd)
> > No symbol "XVECTOR" in current context.
>
> Can you try this (subtracting 5 from the tagged pointer to get the base
> pointer, then printing its memory region):
>
>      x/32gx 0x98e79d8
>      x/32gx 0x98f1d08
>
> > (gdb) x/77gx 0x15554f39bca8
>
> Unfortunately, I don't see any overlap between that and the last_marked
> entries.  Might have worked with an even larger LAST_MARKED_SIZE.
>
> > (gdb) p terminal_list->display_info
> > $1 = {tty = 0x7f3ed10, x = 0x7f3ed10, w32 = 0x7f3ed10, ns = 0x7f3ed10,
> pgtk = 0x7f3ed10, haiku = 0x7f3ed10, android = 0x7f3ed10}
> > (gdb) p *terminal_list->display_info.x
> >   Xatom_LINE_NUMBER = 399, Xatom_COLUMN_NUMBER = 400, Xatom_OWNER_OS =
> 401, Xatom_HOST_NAME = 402, Xatom_USER = 403,
> > Xatom_CLASS = 404, Xatom_NAME = 405, Xatom_SAVE_TARGETS = 406,
> x_focus_frame = 0x13cea00, x_focus_event_frame = 0x13cea00,
> > highlight_frame = 0x13cea00, x_pending_autoraise_frame = 0x0,
> last_mouse_frame = 0x13cea00, last_mouse_glyph_frame = 0x0,
> > last_mouse_motion_frame = 0x13cea00,
> >   last_mouse_scroll_bar = 0x0, last_user_time = 2180587218,
> last_mouse_motion_x = 308, last_mouse_motion_y = 1144, last_mouse_glyph =
> {x =
>
> No dangling pointers here, as far as I can see.
>
> >  Can you say more about that?  Are you running using a remote X server,
> >  or some kind of tunnel setup, or is this some sort of WSL or VM setup?
> >  It's relevant because remote X sessions have very different timing
> >  characteristics, and different code for determining mouse positions is
> >  in use.
> >
> > This is not WSL or VM. I use PUTTY on Windows 10 to connect to a remote
> Linux host (which is running the emacs daemon), and then I open the
> > emacs frame (emacsclient) with X forwarding using Cygwin/X.
>
> Thank you, that makes sense!
>
> Pip
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 17 May 2025 21:18:02 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 17 May 2025 21:17:20 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

>  Can you try this (subtracting 5 from the tagged pointer to get the base
>  pointer, then printing its memory region):
>
>       x/32gx 0x98e79d8
>       x/32gx 0x98f1d08 
>
> (gdb) x/32gx 0x98e79d8
> 0x98e79d8:      0xc00000000e008000      0x0000000020e10970
> 0x98e79e8:      0x0000000003aa20d0      0x0000000003aa1ac0
> 0x98e79f8:      0x00000000006e9960      0x000000002265f480
> 0x98e7a08:      0x0000001a0000001a      0x0000400700000060
> 0x98e7a18:      0x0000000000000000      0x400000000e008000
> 0x98e7a28:      0x000000001bfdbe90      0x0000000020e10b80
> 0x98e7a38:      0x000000001bfdb880      0x00000000006e98e0
> 0x98e7a48:      0x000000001fd792e0      0x0000001a0000001a
> 0x98e7a58:      0x0000400700000060      0x0000000000000000
> 0x98e7a68:      0x400000001f000005      0x0000000000000606
> 0x98e7a78:      0x0000000008ae5654      0x000000001b78fe2d
> 0x98e7a88:      0x0000000000000012      0x0000000008ae5674
> 0x98e7a98:      0x400000001f000005      0x0000000000000606
> 0x98e7aa8:      0x0000000008ae5694      0x000000001c32b8dd
> 0x98e7ab8:      0x000000000000000e      0x0000000008ae5674
> 0x98e7ac8:      0x000000000000000e      0x000015554de5d450

This tells us the stale pointer was most likely found in a hash table,
with 26 elements.  Can you please run x/64gx 0x3aa1ac0 so we can be sure
of this?

Unfortunately, most likely, all that is going to tell us the basic types
of the keys and values in the hash table, and we're then going to have
to investigate the surviving keys and values to get a clue as to what
the hash table might have been.  Unless someone can think of a better
way?

Thanks again!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 18 May 2025 15:13:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 18 May 2025 11:12:43 -0400
[Message part 1 (text/plain, inline)]
>
> Can you please run x/64gx 0x3aa1ac0 so we can be sure
> of this?
>

Sure:

(gdb) x/64gx 0x3aa1ac0
0x3aa1ac0:      0x00000000098f1d0d      0x0000000000000030
0x3aa1ad0:      0x00000000098f1d65      0x0000000000000030
0x3aa1ae0:      0x00000000098f1dbd      0x0000000000000030
0x3aa1af0:      0x00000000098f1e15      0x0000000000000030
0x3aa1b00:      0x00000000098f1e6d      0x0000000000000030
0x3aa1b10:      0x00000000098f1ec5      0x0000000000000030
0x3aa1b20:      0x00000000098f1f1d      0x0000000000000030
0x3aa1b30:      0x00000000098f1f75      0x0000000000000030
0x3aa1b40:      0x00000000098f1fcd      0x0000000000000030
0x3aa1b50:      0x00000000098f2025      0x0000000000000030
0x3aa1b60:      0x00000000098f207d      0x0000000000000030
0x3aa1b70:      0x00000000098f20d5      0x0000000000000030
0x3aa1b80:      0x00000000098f212d      0x0000000000000030
0x3aa1b90:      0x00000000098f2185      0x0000000000000030
0x3aa1ba0:      0x00000000098f21dd      0x0000000000000030
0x3aa1bb0:      0x00000000098f2235      0x0000000000000030
0x3aa1bc0:      0x00000000098f228d      0x0000000000000030
0x3aa1bd0:      0x00000000098f22e5      0x0000000000000030
0x3aa1be0:      0x00000000098f233d      0x0000000000000030
0x3aa1bf0:      0x00000000098f2395      0x0000000000000030
0x3aa1c00:      0x00000000098f23ed      0x0000000000000030
0x3aa1c10:      0x00000000098f2445      0x0000000000000030
0x3aa1c20:      0x00000000098f249d      0x0000000000000030
0x3aa1c30:      0x00000000098f24f5      0x0000000000000030
0x3aa1c40:      0x00000000098f254d      0x0000000000000030
0x3aa1c50:      0x00000000098f25a5      0x0000000000000030
0x3aa1c60:      0x0000000000000007      0x0000000000000007
0x3aa1c70:      0x0000000000000007      0x0000000000000007
0x3aa1c80:      0x0000000000000007      0x0000000000000007
0x3aa1c90:      0x0000000000000007      0x0000000000000007
0x3aa1ca0:      0x0000000000000007      0x0000000000000007
0x3aa1cb0:      0x0000000000000007      0x0000000000000007
(gdb)


Keep them coming! Are you still suspecting X?

Thanks!
George


On Sat, May 17, 2025 at 5:17 PM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
>
> >  Can you try this (subtracting 5 from the tagged pointer to get the base
> >  pointer, then printing its memory region):
> >
> >       x/32gx 0x98e79d8
> >       x/32gx 0x98f1d08
> >
> > (gdb) x/32gx 0x98e79d8
> > 0x98e79d8:      0xc00000000e008000      0x0000000020e10970
> > 0x98e79e8:      0x0000000003aa20d0      0x0000000003aa1ac0
> > 0x98e79f8:      0x00000000006e9960      0x000000002265f480
> > 0x98e7a08:      0x0000001a0000001a      0x0000400700000060
> > 0x98e7a18:      0x0000000000000000      0x400000000e008000
> > 0x98e7a28:      0x000000001bfdbe90      0x0000000020e10b80
> > 0x98e7a38:      0x000000001bfdb880      0x00000000006e98e0
> > 0x98e7a48:      0x000000001fd792e0      0x0000001a0000001a
> > 0x98e7a58:      0x0000400700000060      0x0000000000000000
> > 0x98e7a68:      0x400000001f000005      0x0000000000000606
> > 0x98e7a78:      0x0000000008ae5654      0x000000001b78fe2d
> > 0x98e7a88:      0x0000000000000012      0x0000000008ae5674
> > 0x98e7a98:      0x400000001f000005      0x0000000000000606
> > 0x98e7aa8:      0x0000000008ae5694      0x000000001c32b8dd
> > 0x98e7ab8:      0x000000000000000e      0x0000000008ae5674
> > 0x98e7ac8:      0x000000000000000e      0x000015554de5d450
>
> This tells us the stale pointer was most likely found in a hash table,
> with 26 elements.  Can you please run x/64gx 0x3aa1ac0 so we can be sure
> of this?
>
> Unfortunately, most likely, all that is going to tell us the basic types
> of the keys and values in the hash table, and we're then going to have
> to investigate the surviving keys and values to get a clue as to what
> the hash table might have been.  Unless someone can think of a better
> way?
>
> Thanks again!
>
> Pip
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Mon, 19 May 2025 15:45:03 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Mon, 19 May 2025 15:44:00 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

>  Can you please run x/64gx 0x3aa1ac0 so we can be sure
>  of this? 
>
> Sure:
>
> (gdb) x/64gx 0x3aa1ac0
> 0x3aa1ac0:      0x00000000098f1d0d      0x0000000000000030
> 0x3aa1ad0:      0x00000000098f1d65      0x0000000000000030
> 0x3aa1ae0:      0x00000000098f1dbd      0x0000000000000030
> 0x3aa1af0:      0x00000000098f1e15      0x0000000000000030
> 0x3aa1b00:      0x00000000098f1e6d      0x0000000000000030
> 0x3aa1b10:      0x00000000098f1ec5      0x0000000000000030
> 0x3aa1b20:      0x00000000098f1f1d      0x0000000000000030
> 0x3aa1b30:      0x00000000098f1f75      0x0000000000000030
> 0x3aa1b40:      0x00000000098f1fcd      0x0000000000000030
> 0x3aa1b50:      0x00000000098f2025      0x0000000000000030
> 0x3aa1b60:      0x00000000098f207d      0x0000000000000030
> 0x3aa1b70:      0x00000000098f20d5      0x0000000000000030
> 0x3aa1b80:      0x00000000098f212d      0x0000000000000030
> 0x3aa1b90:      0x00000000098f2185      0x0000000000000030
> 0x3aa1ba0:      0x00000000098f21dd      0x0000000000000030
> 0x3aa1bb0:      0x00000000098f2235      0x0000000000000030
> 0x3aa1bc0:      0x00000000098f228d      0x0000000000000030
> 0x3aa1bd0:      0x00000000098f22e5      0x0000000000000030
> 0x3aa1be0:      0x00000000098f233d      0x0000000000000030
> 0x3aa1bf0:      0x00000000098f2395      0x0000000000000030
> 0x3aa1c00:      0x00000000098f23ed      0x0000000000000030
> 0x3aa1c10:      0x00000000098f2445      0x0000000000000030
> 0x3aa1c20:      0x00000000098f249d      0x0000000000000030
> 0x3aa1c30:      0x00000000098f24f5      0x0000000000000030
> 0x3aa1c40:      0x00000000098f254d      0x0000000000000030
> 0x3aa1c50:      0x00000000098f25a5      0x0000000000000030
> 0x3aa1c60:      0x0000000000000007      0x0000000000000007
> 0x3aa1c70:      0x0000000000000007      0x0000000000000007
> 0x3aa1c80:      0x0000000000000007      0x0000000000000007
> 0x3aa1c90:      0x0000000000000007      0x0000000000000007
> 0x3aa1ca0:      0x0000000000000007      0x0000000000000007
> 0x3aa1cb0:      0x0000000000000007      0x0000000000000007
> (gdb) 

That's a native comp unit's lambda_gc_guard_h, which is quite curious.
Presumably 0x98e7985 is the native comp unit and 0x8f680f4 is its file
name, so could you please run

    p *(char **)0x8f68108

to retrieve it, as well as

    x/32gx 0x9e7980

to confirm it is (or was) a native comp unit?

Going back through the last_marked array, it seems we're looking at the
'function-history plist property of a symbol at 0x15554df1a3a0, but I'm
not sure which of the strings we mark after that is its name.  Best to
print all of them:

    p *(char **)0x8ae5588
    p *(char **)0x15554ec0ff98
    p *(char **)0x15554ec0ff78

The last vector or pseudovector we marked before that was 0x38294cd, so
I think we should look at

    x/32gx 0x38294c8

too.

> Keep them coming! Are you still suspecting X?

Currently, it seems more likely to involve the nativecomp code, but I've
stared at it for a while and I don't see how it can resurrect comp units
once they become unreachable.

Thanks again!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Mon, 19 May 2025 15:57:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Mon, 19 May 2025 11:56:02 -0400
[Message part 1 (text/plain, inline)]
Here they are:

(gdb)  p *(char **)0x8f68108
$1 = 0x2018b608
"/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/cl-print-79bf9fb1-14d0e7d5.eln"
(gdb) x/32gx 0x9e7980
0x9e7980 <pure+3086496>:        0x0000000000000000      0x0000000000000000
0x9e7990 <pure+3086512>:        0x0000000000000000      0x0000000000000000
0x9e79a0 <pure+3086528>:        0x0000000000000000      0x0000000000000000
0x9e79b0 <pure+3086544>:        0x0000000000000000      0x0000000000000000
0x9e79c0 <pure+3086560>:        0x0000000000000000      0x0000000000000000
0x9e79d0 <pure+3086576>:        0x0000000000000000      0x0000000000000000
0x9e79e0 <pure+3086592>:        0x0000000000000000      0x0000000000000000
0x9e79f0 <pure+3086608>:        0x0000000000000000      0x0000000000000000
0x9e7a00 <pure+3086624>:        0x0000000000000000      0x0000000000000000
0x9e7a10 <pure+3086640>:        0x0000000000000000      0x0000000000000000
0x9e7a20 <pure+3086656>:        0x0000000000000000      0x0000000000000000
0x9e7a30 <pure+3086672>:        0x0000000000000000      0x0000000000000000
0x9e7a40 <pure+3086688>:        0x0000000000000000      0x0000000000000000
0x9e7a50 <pure+3086704>:        0x0000000000000000      0x0000000000000000
0x9e7a60 <pure+3086720>:        0x0000000000000000      0x0000000000000000
0x9e7a70 <pure+3086736>:        0x0000000000000000      0x0000000000000000
(gdb) p *(char **)0x8ae5588

    p *(char **)0x15554ec0ff78$2 = 0x2018b6b8
"/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/cl-print.elc"
(gdb)     p *(char **)0x15554ec0ff98
$3 = 0x15554f56d92e "cl-print"
(gdb)     p *(char **)0x15554ec0ff78
$4 = 0x15554f56d81f "Print OBJECT on STREAM according to its type.\nOutput
is further controlled by the variables\n`cl-print-readably',
`cl-print-compiled', along with output\nvariables for the standard printing
functions.  "...
(gdb) x/32gx 0x38294c8
0x38294c8:      0xc00000001200a000      0x000015553389a350
0x38294d8:      0x0000000000020001      0x00000000088417d0
0x38294e8:      0x0000000000000000      0x0000000000000000
0x38294f8:      0x0000000000000025      0x00000000098e7985
0x3829508:      0x000000000e754ab0      0x0000000000000000
0x3829518:      0x000000001f6463e3      0x400000001200a000
0x3829528:      0x000015553389a590      0x0000000000010001
0x3829538:      0x0000000004d5eb30      0x0000000000000000
0x3829548:      0x0000000000000000      0x0000000000000026
0x3829558:      0x00000000098e7985      0x000000000e754ae0
0x3829568:      0x0000000000000000      0x000000001f646373
0x3829578:      0x400000001200a000      0x000015553389a6a0
0x3829588:      0x0000000000030003      0x000000000e754b30
0x3829598:      0x0000000000000000      0x0000000000000000
0x38295a8:      0x0000000000000027      0x00000000098e7985
0x38295b8:      0x000000001fe4ed90      0x0000000000000000
(gdb)

Thanks!
George

On Mon, May 19, 2025 at 11:44 AM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
>
> >  Can you please run x/64gx 0x3aa1ac0 so we can be sure
> >  of this?
> >
> > Sure:
> >
> > (gdb) x/64gx 0x3aa1ac0
> > 0x3aa1ac0:      0x00000000098f1d0d      0x0000000000000030
> > 0x3aa1ad0:      0x00000000098f1d65      0x0000000000000030
> > 0x3aa1ae0:      0x00000000098f1dbd      0x0000000000000030
> > 0x3aa1af0:      0x00000000098f1e15      0x0000000000000030
> > 0x3aa1b00:      0x00000000098f1e6d      0x0000000000000030
> > 0x3aa1b10:      0x00000000098f1ec5      0x0000000000000030
> > 0x3aa1b20:      0x00000000098f1f1d      0x0000000000000030
> > 0x3aa1b30:      0x00000000098f1f75      0x0000000000000030
> > 0x3aa1b40:      0x00000000098f1fcd      0x0000000000000030
> > 0x3aa1b50:      0x00000000098f2025      0x0000000000000030
> > 0x3aa1b60:      0x00000000098f207d      0x0000000000000030
> > 0x3aa1b70:      0x00000000098f20d5      0x0000000000000030
> > 0x3aa1b80:      0x00000000098f212d      0x0000000000000030
> > 0x3aa1b90:      0x00000000098f2185      0x0000000000000030
> > 0x3aa1ba0:      0x00000000098f21dd      0x0000000000000030
> > 0x3aa1bb0:      0x00000000098f2235      0x0000000000000030
> > 0x3aa1bc0:      0x00000000098f228d      0x0000000000000030
> > 0x3aa1bd0:      0x00000000098f22e5      0x0000000000000030
> > 0x3aa1be0:      0x00000000098f233d      0x0000000000000030
> > 0x3aa1bf0:      0x00000000098f2395      0x0000000000000030
> > 0x3aa1c00:      0x00000000098f23ed      0x0000000000000030
> > 0x3aa1c10:      0x00000000098f2445      0x0000000000000030
> > 0x3aa1c20:      0x00000000098f249d      0x0000000000000030
> > 0x3aa1c30:      0x00000000098f24f5      0x0000000000000030
> > 0x3aa1c40:      0x00000000098f254d      0x0000000000000030
> > 0x3aa1c50:      0x00000000098f25a5      0x0000000000000030
> > 0x3aa1c60:      0x0000000000000007      0x0000000000000007
> > 0x3aa1c70:      0x0000000000000007      0x0000000000000007
> > 0x3aa1c80:      0x0000000000000007      0x0000000000000007
> > 0x3aa1c90:      0x0000000000000007      0x0000000000000007
> > 0x3aa1ca0:      0x0000000000000007      0x0000000000000007
> > 0x3aa1cb0:      0x0000000000000007      0x0000000000000007
> > (gdb)
>
> That's a native comp unit's lambda_gc_guard_h, which is quite curious.
> Presumably 0x98e7985 is the native comp unit and 0x8f680f4 is its file
> name, so could you please run
>
>     p *(char **)0x8f68108
>
> to retrieve it, as well as
>
>     x/32gx 0x9e7980
>
> to confirm it is (or was) a native comp unit?
>
> Going back through the last_marked array, it seems we're looking at the
> 'function-history plist property of a symbol at 0x15554df1a3a0, but I'm
> not sure which of the strings we mark after that is its name.  Best to
> print all of them:
>
>     p *(char **)0x8ae5588
>     p *(char **)0x15554ec0ff98
>     p *(char **)0x15554ec0ff78
>
> The last vector or pseudovector we marked before that was 0x38294cd, so
> I think we should look at
>
>     x/32gx 0x38294c8
>
> too.
>
> > Keep them coming! Are you still suspecting X?
>
> Currently, it seems more likely to involve the nativecomp code, but I've
> stared at it for a while and I don't see how it can resurrect comp units
> once they become unreachable.
>
> Thanks again!
>
> Pip
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Tue, 20 May 2025 15:57:03 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Tue, 20 May 2025 15:55:46 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

> Here they are:

Thanks again!

The good news is I found *a* nativecomp GC bug, but I'm not convinced
it's related to the one you've been seeing.  It works only with the
right optimization options (-O2 here), because without optimization
conservative GC will save the day, but that matches your build.

Create a file like this:

;;; -*- lexical-binding: t; -*-

(defun f ()
  (fmakunbound 'f)
  (garbage-collect)
  (lambda () nil))

then execute:

(prog1 nil (native-elisp-load (native-compile "file.el")))
(funcall 'f)

What will happen is that while execution is in 'f', there is no
reference to the subr f (the backtrace only keeps alive the symbol f,
not the subr f, and funcall_general is tail recursive so its stack
variables are out of scope by the time we call garbage-collect).  That
means the compilation unit may get unloaded while we're still in 'f',
and then we crash trying to return to it after garbage collection.

I *think* that if there were a second handle keeping alive the dynlib
(but not the compilation unit), we would return an anonymous lambda
which would refer to the now-invalid (but still open) native compilation
unit.  This would also happen if dlclose failed to unload the library.

I've been able to simulate this by intercepting dynlib_close and
returning from it immediately (without actually closing the shared
object) and executing:

(prog1 nil (native-elisp-load (native-compile "file.el")))
(prog1 nil (setq x (funcall 'f)))

This succeeded, and when I tried to access 'x' I got a crash, as
expected.

At this point, the bug seems a little contrived, because it's unusual
for a function to fmakunbound the symbol it is bound to, but I think
that's pretty much what happens in some recursive load scenarios.  If
the function redefines itself using (ultimately) defalias, the old
function value is sometimes, but not always, stored in the
function-history symbol property.  I don't believe this mechanism
reliably keeps alive the old function (and, thus, the compilation unit)
either, and it can be circumvented entirely by using Ffset directly.

Again, this is unlikely to be precisely what happened to George here,
but it indicates that relying on the current specpdl backtrace to keep
alive subrs that are being called doesn't work in all cases.

We should probably keep the actual subr around, either in a (hidden?)
backtrace slot somewhere or in a local variable in funcall_subr which we
ensure cannot be optimized away (by tail recursion or otherwise).

Note that the second dynlib handle isn't required for a crash, but the
crashes we see without it should be immediate, upon returning from GC,
assuming dynlib_close actually synchronously unmaps the library.

I think both the symbol being bound to something else and the second
handle might happen "naturally" during some recursive reload scenarios.

> (gdb)  p *(char **)0x8f68108
> $1 = 0x2018b608 "/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/cl-print-79bf9fb1-14d0e7d5.eln"
> (gdb) x/32gx 0x9e7980

Oops, I messed up there.  I meant x/32gx 0x98e7980, though it's no
longer necessary (we know it's a native compilation unit because it
appears in the right slot in the subr below).

> (gdb) p *(char **)0x8ae5588
>
>     p *(char **)0x15554ec0ff78$2 = 0x2018b6b8
> "/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/cl-print.elc"
> (gdb)     p *(char **)0x15554ec0ff98
> $3 = 0x15554f56d92e "cl-print"
> (gdb)     p *(char **)0x15554ec0ff78
> $4 = 0x15554f56d81f "Print OBJECT on STREAM according to its type.\nOutput is further controlled by the variables\n`cl-print-readably',
> `cl-print-compiled', along with output\nvariables for the standard printing functions.  "...

That's the beginning of the function-history of the cl-prin1 symbol
(while symbols mark the strings containing their names, they do not put
the marked string in last_marked, so we have to deduce this from the
docstring).

> (gdb) x/32gx 0x38294c8
> 0x38294c8:      0xc00000001200a000      0x000015553389a350
> 0x38294d8:      0x0000000000020001      0x00000000088417d0
> 0x38294e8:      0x0000000000000000      0x0000000000000000
> 0x38294f8:      0x0000000000000025      0x00000000098e7985
> 0x3829508:      0x000000000e754ab0      0x0000000000000000
> 0x3829518:      0x000000001f6463e3      0x400000001200a000

that appears to be the cl-prin1 definition (minargs 1, maxargs 2, native
comp unit 0x98e7985).

How reproducible did you say this crash was?  Unless we can come up with
a convincing alternative explanation, it may be worth it to fix
funcall_subr to avoid this particular bug, and keep running Emacs in gdb
until it crashes again...

diff --git a/src/eval.c b/src/eval.c
index caae4cb17e2..274319d1196 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3135,6 +3135,9 @@ safe_eval (Lisp_Object sexp)
 Lisp_Object
 funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object *args)
 {
+  volatile Lisp_Object keepalive;
+  XSETSUBR (keepalive, subr);
+  Lisp_Object ret;
   eassume (numargs >= 0);
   if (numargs >= subr->min_args)
     {
@@ -3156,32 +3159,46 @@ funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object *args)
 	  switch (maxargs)
 	    {
 	    case 0:
-	      return subr->function.a0 ();
+	      ret = subr->function.a0 ();
+	      break;
 	    case 1:
-	      return subr->function.a1 (a[0]);
+	      ret = subr->function.a1 (a[0]);
+	      break;
 	    case 2:
-	      return subr->function.a2 (a[0], a[1]);
+	      ret = subr->function.a2 (a[0], a[1]);
+	      break;
 	    case 3:
-	      return subr->function.a3 (a[0], a[1], a[2]);
+	      ret = subr->function.a3 (a[0], a[1], a[2]);
+	      break;
 	    case 4:
-	      return subr->function.a4 (a[0], a[1], a[2], a[3]);
+	      ret = subr->function.a4 (a[0], a[1], a[2], a[3]);
+	      break;
 	    case 5:
-	      return subr->function.a5 (a[0], a[1], a[2], a[3], a[4]);
+	      ret = subr->function.a5 (a[0], a[1], a[2], a[3], a[4]);
+	      break;
 	    case 6:
-	      return subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]);
+	      ret = subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]);
+	      break;
 	    case 7:
-	      return subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5],
+	      ret = subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5],
 					a[6]);
+	      break;
 	    case 8:
-	      return subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5],
-					a[6], a[7]);
+	      ret = subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5],
+				       a[6], a[7]);
+	      break;
 	    }
-	  eassume (false);	/* In case the compiler is too stupid.  */
+	  keepalive = keepalive;
+	  return ret;
 	}
 
       /* Call to n-adic subr.  */
       if (maxargs == MANY || maxargs > 8)
-	return subr->function.aMANY (numargs, args);
+	{
+	  ret = subr->function.aMANY (numargs, args);
+	  keepalive = keepalive;
+	  return ret;
+	}
     }
 
   /* Anything else is an error.  */





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Tue, 20 May 2025 18:41:01 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Tue, 20 May 2025 14:39:56 -0400
[Message part 1 (text/plain, inline)]
>
> How reproducible did you say this crash was?
>

I get it around once a month I would say.

My elisp is way too primitive to be able to understand the circumstances
that lead to the bug you are describing, but I did find an instance of
fmakunbound in a macro in Doom emacs:
https://github.com/doomemacs/doomemacs/blob/66f1b25dac30ca97779e8a05e735e14230556492/lisp/doom-lib.el#L442

Can't really say if it's triggering the bug that you are describing, though.

Thanks!
George

On Tue, May 20, 2025 at 11:55 AM Pip Cet <pipcet <at> protonmail.com> wrote:

> "George P" <georgepanagopo <at> gmail.com> writes:
>
> > Here they are:
>
> Thanks again!
>
> The good news is I found *a* nativecomp GC bug, but I'm not convinced
> it's related to the one you've been seeing.  It works only with the
> right optimization options (-O2 here), because without optimization
> conservative GC will save the day, but that matches your build.
>
> Create a file like this:
>
> ;;; -*- lexical-binding: t; -*-
>
> (defun f ()
>   (fmakunbound 'f)
>   (garbage-collect)
>   (lambda () nil))
>
> then execute:
>
> (prog1 nil (native-elisp-load (native-compile "file.el")))
> (funcall 'f)
>
> What will happen is that while execution is in 'f', there is no
> reference to the subr f (the backtrace only keeps alive the symbol f,
> not the subr f, and funcall_general is tail recursive so its stack
> variables are out of scope by the time we call garbage-collect).  That
> means the compilation unit may get unloaded while we're still in 'f',
> and then we crash trying to return to it after garbage collection.
>
> I *think* that if there were a second handle keeping alive the dynlib
> (but not the compilation unit), we would return an anonymous lambda
> which would refer to the now-invalid (but still open) native compilation
> unit.  This would also happen if dlclose failed to unload the library.
>
> I've been able to simulate this by intercepting dynlib_close and
> returning from it immediately (without actually closing the shared
> object) and executing:
>
> (prog1 nil (native-elisp-load (native-compile "file.el")))
> (prog1 nil (setq x (funcall 'f)))
>
> This succeeded, and when I tried to access 'x' I got a crash, as
> expected.
>
> At this point, the bug seems a little contrived, because it's unusual
> for a function to fmakunbound the symbol it is bound to, but I think
> that's pretty much what happens in some recursive load scenarios.  If
> the function redefines itself using (ultimately) defalias, the old
> function value is sometimes, but not always, stored in the
> function-history symbol property.  I don't believe this mechanism
> reliably keeps alive the old function (and, thus, the compilation unit)
> either, and it can be circumvented entirely by using Ffset directly.
>
> Again, this is unlikely to be precisely what happened to George here,
> but it indicates that relying on the current specpdl backtrace to keep
> alive subrs that are being called doesn't work in all cases.
>
> We should probably keep the actual subr around, either in a (hidden?)
> backtrace slot somewhere or in a local variable in funcall_subr which we
> ensure cannot be optimized away (by tail recursion or otherwise).
>
> Note that the second dynlib handle isn't required for a crash, but the
> crashes we see without it should be immediate, upon returning from GC,
> assuming dynlib_close actually synchronously unmaps the library.
>
> I think both the symbol being bound to something else and the second
> handle might happen "naturally" during some recursive reload scenarios.
>
> > (gdb)  p *(char **)0x8f68108
> > $1 = 0x2018b608
> "/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/cl-print-79bf9fb1-14d0e7d5.eln"
> > (gdb) x/32gx 0x9e7980
>
> Oops, I messed up there.  I meant x/32gx 0x98e7980, though it's no
> longer necessary (we know it's a native compilation unit because it
> appears in the right slot in the subr below).
>
> > (gdb) p *(char **)0x8ae5588
> >
> >     p *(char **)0x15554ec0ff78$2 = 0x2018b6b8
> >
> "/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/cl-print.elc"
> > (gdb)     p *(char **)0x15554ec0ff98
> > $3 = 0x15554f56d92e "cl-print"
> > (gdb)     p *(char **)0x15554ec0ff78
> > $4 = 0x15554f56d81f "Print OBJECT on STREAM according to its
> type.\nOutput is further controlled by the variables\n`cl-print-readably',
> > `cl-print-compiled', along with output\nvariables for the standard
> printing functions.  "...
>
> That's the beginning of the function-history of the cl-prin1 symbol
> (while symbols mark the strings containing their names, they do not put
> the marked string in last_marked, so we have to deduce this from the
> docstring).
>
> > (gdb) x/32gx 0x38294c8
> > 0x38294c8:      0xc00000001200a000      0x000015553389a350
> > 0x38294d8:      0x0000000000020001      0x00000000088417d0
> > 0x38294e8:      0x0000000000000000      0x0000000000000000
> > 0x38294f8:      0x0000000000000025      0x00000000098e7985
> > 0x3829508:      0x000000000e754ab0      0x0000000000000000
> > 0x3829518:      0x000000001f6463e3      0x400000001200a000
>
> that appears to be the cl-prin1 definition (minargs 1, maxargs 2, native
> comp unit 0x98e7985).
>
> How reproducible did you say this crash was?  Unless we can come up with
> a convincing alternative explanation, it may be worth it to fix
> funcall_subr to avoid this particular bug, and keep running Emacs in gdb
> until it crashes again...
>
> diff --git a/src/eval.c b/src/eval.c
> index caae4cb17e2..274319d1196 100644
> --- a/src/eval.c
> +++ b/src/eval.c
> @@ -3135,6 +3135,9 @@ safe_eval (Lisp_Object sexp)
>  Lisp_Object
>  funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object
> *args)
>  {
> +  volatile Lisp_Object keepalive;
> +  XSETSUBR (keepalive, subr);
> +  Lisp_Object ret;
>    eassume (numargs >= 0);
>    if (numargs >= subr->min_args)
>      {
> @@ -3156,32 +3159,46 @@ funcall_subr (struct Lisp_Subr *subr, ptrdiff_t
> numargs, Lisp_Object *args)
>           switch (maxargs)
>             {
>             case 0:
> -             return subr->function.a0 ();
> +             ret = subr->function.a0 ();
> +             break;
>             case 1:
> -             return subr->function.a1 (a[0]);
> +             ret = subr->function.a1 (a[0]);
> +             break;
>             case 2:
> -             return subr->function.a2 (a[0], a[1]);
> +             ret = subr->function.a2 (a[0], a[1]);
> +             break;
>             case 3:
> -             return subr->function.a3 (a[0], a[1], a[2]);
> +             ret = subr->function.a3 (a[0], a[1], a[2]);
> +             break;
>             case 4:
> -             return subr->function.a4 (a[0], a[1], a[2], a[3]);
> +             ret = subr->function.a4 (a[0], a[1], a[2], a[3]);
> +             break;
>             case 5:
> -             return subr->function.a5 (a[0], a[1], a[2], a[3], a[4]);
> +             ret = subr->function.a5 (a[0], a[1], a[2], a[3], a[4]);
> +             break;
>             case 6:
> -             return subr->function.a6 (a[0], a[1], a[2], a[3], a[4],
> a[5]);
> +             ret = subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]);
> +             break;
>             case 7:
> -             return subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5],
> +             ret = subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5],
>                                         a[6]);
> +             break;
>             case 8:
> -             return subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5],
> -                                       a[6], a[7]);
> +             ret = subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5],
> +                                      a[6], a[7]);
> +             break;
>             }
> -         eassume (false);      /* In case the compiler is too stupid.  */
> +         keepalive = keepalive;
> +         return ret;
>         }
>
>        /* Call to n-adic subr.  */
>        if (maxargs == MANY || maxargs > 8)
> -       return subr->function.aMANY (numargs, args);
> +       {
> +         ret = subr->function.aMANY (numargs, args);
> +         keepalive = keepalive;
> +         return ret;
> +       }
>      }
>
>    /* Anything else is an error.  */
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Thu, 29 May 2025 17:56:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Thu, 29 May 2025 13:55:07 -0400
[Message part 1 (text/plain, inline)]
I got another crash, again in GC. I haven't had a chance to apply Pip's
patch, so this is just 30.1 as before. The trace looks a bit different,
apologies if it's a different issue. I still have the program under gdb. I
have redacted the frames after the emacs_abort in the full backtrace, let
me know if you need anything from them, or what other information I can
provide from gdb.

I did not use any org-mode stuff, so my original hunch. The only unusual
(from me) thing I did just before the crash was open up an eshell buffer,
execute a couple of commands, and close it. I hadn't used eshell-mode
before that in that session.

Thanks!
George

(gdb) where
#0  0x0000155550f3416c in __pthread_kill_implementation () from
/nix/store/fm971x5g8nkjd756kgsnw2qpn2kqs37z-glibc-2.40-66/lib/libc.so.6
#1  0x0000155550edbe86 in raise () from
/nix/store/fm971x5g8nkjd756kgsnw2qpn2kqs37z-glibc-2.40-66/lib/libc.so.6
#2  0x0000000000527279 in terminate_due_to_signal (sig=sig <at> entry=6,
backtrace_limit=backtrace_limit <at> entry=40) at emacs.c:480
#3  0x0000000000546b5c in emacs_abort () at sysdep.c:2391
#4  0x00000000005a9989 in signal_or_quit (error_symbol=0x3ea0,
data=0x68519ef3, continuable=continuable <at> entry=false) at eval.c:1858
#5  0x00000000005a9bb4 in Fsignal (error_symbol=<optimized out>,
error_symbol <at> entry=0x3ea0, data=<optimized out>) at eval.c:1822
#6  0x00000000005aa18d in xsignal (error_symbol=0x3ea0, data=<optimized
out>) at /build/source/src/lisp.h:4845
#7  xsignal2 (error_symbol=error_symbol <at> entry=0x3ea0,
arg1=arg1 <at> entry=0x3d476d75,
arg2=arg2 <at> entry=0x6) at eval.c:1988
#8  0x0000000000595799 in args_out_of_range (a1=a1 <at> entry=0x3d476d75,
a2=a2 <at> entry=0x6) at data.c:147
#9  0x0000000000595977 in Faref (array=0x3d476d75, idx=0x6) at data.c:2579
#10 0x000015554e2e8a70 in F74696d65722d2d74696d65_timer__time_0 () from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
#11 0x00000000005aa3de in funcall_subr (subr=subr <at> entry=0x15554ec2d330,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffff5e48) at eval.c:3161
#12 0x00000000005abdab in funcall_general (fun=0x15554ec2d335,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffff5e48) at
/build/source/src/lisp.h:2243
#13 0x00000000005a903e in Ffuncall (nargs=2, args=0x7fffffff5e40) at
eval.c:3093
#14 0x000015554e2e8fe2 in
F74696d65722d2d74696d652d6c6573732d70_timer__time_less_p_0 () from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
#15 0x00000000005aa3f0 in funcall_subr (subr=subr <at> entry=0x15554ec33c38,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff5fe8) at eval.c:3163
#16 0x00000000005abdab in funcall_general (fun=0x15554ec33c3d,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff5fe8) at
/build/source/src/lisp.h:2243
#17 0x00000000005a903e in Ffuncall (nargs=3, args=0x7fffffff5fe0) at
eval.c:3093
#18 0x000015554e2e946c in F74696d65722d2d6163746976617465_timer__activate_0
() from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
#19 0x00000000005aa420 in funcall_subr (subr=subr <at> entry=0x15554ec33b70,
numargs=numargs <at> entry=4, args=args <at> entry=0x7fffffff6158) at eval.c:3167
#20 0x00000000005abdab in funcall_general (fun=0x15554ec33b75,
numargs=numargs <at> entry=4, args=args <at> entry=0x7fffffff6158) at
/build/source/src/lisp.h:2243
#21 0x00000000005a903e in Ffuncall (nargs=5, args=0x7fffffff6150) at
eval.c:3093
#22 0x000015554e2e96a6 in F74696d65722d6163746976617465_timer_activate_0 ()
from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
#23 0x00000000005aa406 in funcall_subr (subr=subr <at> entry=0x15554ec336f8,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffff62e8) at eval.c:3165
#24 0x00000000005abdab in funcall_general (fun=0x15554ec336fd,
numargs=numargs <at> entry=1, args=args <at> entry=0x7fffffff62e8) at
/build/source/src/lisp.h:2243
#25 0x00000000005a903e in Ffuncall (nargs=2, args=0x7fffffff62e0) at
eval.c:3093
#26 0x000015554e2ea94d in F72756e2d61742d74696d65_run_at_time_0 () from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/timer-3ee7cfd9-ae4e9eed.eln
#27 0x00000000005aa4cd in funcall_subr (subr=subr <at> entry=0x15554f14d090,
numargs=numargs <at> entry=3, args=args <at> entry=0x7fffffff6578) at eval.c:3184
#28 0x00000000005abdab in funcall_general (fun=0x15554f14d095,
numargs=numargs <at> entry=3, args=args <at> entry=0x7fffffff6578) at
/build/source/src/lisp.h:2243
#29 0x00000000005a903e in Ffuncall (nargs=4, args=0x7fffffff6570) at
eval.c:3093
#30 0x000015554e6dcd70 in
F756e646f2d6175746f2d2d626f756e646172792d656e737572652d74696d6572_undo_auto__boundary_ensure_timer_0
() from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/simple-fab5b0cf-4a9a0458.eln
#31 0x00000000005aa3d3 in funcall_subr (subr=subr <at> entry=0x15554f0904d0,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffff66e0) at eval.c:3159
#32 0x00000000005abdab in funcall_general (fun=0x15554f0904d5,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffff66e0) at
/build/source/src/lisp.h:2243
#33 0x00000000005a903e in Ffuncall (nargs=1, args=0x7fffffff66d8) at
eval.c:3093
#34 0x000015554e6dd13a in
F756e646f2d6175746f2d2d756e646f61626c652d6368616e6765_undo_auto__undoable_change_0
() from
/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/bin/../lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/preloaded/simple-fab5b0cf-4a9a0458.eln
#35 0x00000000005aa3d3 in funcall_subr (subr=subr <at> entry=0x15554f4a9490,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffff6838) at eval.c:3159
#36 0x00000000005abdab in funcall_general (fun=0x15554f4a9495,
numargs=numargs <at> entry=0, args=args <at> entry=0x7fffffff6838) at
/build/source/src/lisp.h:2243
#37 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=1,
args=args <at> entry=0x7fffffff6830)
at eval.c:3093
#38 0x00000000005548c0 in call0 (fn=<optimized out>) at
/build/source/src/lisp.h:3515
#39 run_undoable_change () at insdel.c:1990
#40 0x0000000000555e81 in prepare_to_modify_buffer_1 (start=start <at> entry=859892,
end=end <at> entry=859892, preserve_ptr=preserve_ptr <at> entry=0x0) at insdel.c:2027
#41 0x00000000005563bb in prepare_to_modify_buffer (start=859892,
end=859892, preserve_ptr=preserve_ptr <at> entry=0x0) at insdel.c:2083
#42 0x00000000005effb7 in read_and_insert_process_output (p=p <at> entry=0x3fbf1a40,

    buf=buf <at> entry=0x8d2d0bc0 "Caught a SIGHUP at
/nix/store/kc8n9v32akagg59fljd1innk008ap7pc-latexmk-4.85/bin/latexmk line
4461"..., nread=nread <at> entry=99,
    process_coding=process_coding <at> entry=0x495c7d0) at process.c:6410
#43 0x00000000005f0355 in read_and_dispose_of_process_output
(p=p <at> entry=0x3fbf1a40,

    chars=chars <at> entry=0x8d2d0bc0 "Caught a SIGHUP at
/nix/store/kc8n9v32akagg59fljd1innk008ap7pc-latexmk-4.85/bin/latexmk line
4461"..., nbytes=nbytes <at> entry=99,
    coding=coding <at> entry=0x495c7d0) at process.c:6492
#44 0x00000000005f0550 in read_process_output (proc=proc <at> entry=0x3fbf1a45,
channel=<optimized out>) at process.c:6272
#45 0x00000000005f3c3e in status_notify
(deleting_process=deleting_process <at> entry=0x18fac608,
wait_proc=wait_proc <at> entry=0x0) at process.c:7832
#46 0x00000000005f3ea2 in Fdelete_process (process=process <at> entry=0x18fac60d)
at process.c:1127
#47 0x00000000005fa808 in kill_buffer_processes (buffer=buffer <at> entry=0x0)
at process.c:8391
#48 0x0000000000526e6b in shut_down_emacs (sig=sig <at> entry=6,
stuff=stuff <at> entry=0x0) at emacs.c:3133
--Type <RET> for more, q to quit, c to continue without paging--
#49 0x0000000000527242 in terminate_due_to_signal (sig=sig <at> entry=6,
backtrace_limit=backtrace_limit <at> entry=40) at emacs.c:463
#50 0x0000000000546b5c in emacs_abort () at sysdep.c:2391
#51 0x00000000005895f3 in process_mark_stack (base_sp=base_sp <at> entry=0) at
alloc.c:7489
#52 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
#53 0x0000000000589719 in mark_maybe_pointer (p=p <at> entry=0x196922b5,
symbol_only=symbol_only <at> entry=false) at alloc.c:5260
#54 0x000000000058979b in mark_memory (start=<optimized out>,
end=end <at> entry=0x7fffffff7ca0)
at alloc.c:5310
#55 0x00000000005897cc in mark_c_stack (bottom=<optimized out>,
end=end <at> entry=0x7fffffff7ca0 "\340|\377\377\377\177") at alloc.c:5493
#56 0x00000000006181be in mark_one_thread (thread=thread <at> entry=0xc5d940
<main_thread>) at thread.c:670
#57 0x0000000000618229 in mark_threads_callback (ignore=ignore <at> entry=0x0)
at thread.c:703
#58 0x000000000058848b in flush_stack_call_func1 (func=func <at> entry=0x61820b
<mark_threads_callback>, arg=arg <at> entry=0x0) at alloc.c:5534
#59 0x000000000061875d in flush_stack_call_func (func=0x61820b
<mark_threads_callback>, arg=0x0) at /build/source/src/lisp.h:4509
#60 mark_threads () at thread.c:710
#61 0x0000000000589aa8 in garbage_collect () at alloc.c:6605
#62 0x0000000000589dfd in maybe_garbage_collect () at alloc.c:6507
#63 0x00000000005a90ad in maybe_gc () at /build/source/src/lisp.h:5929
#64 Ffuncall (nargs=1, args=0x7fffffff7db8) at eval.c:3088
#65 0x000015553b320855 in
F646f6f6d2d6d6f64656c696e652d7365676d656e742d2d6275666665722d696e666f_doom_modeline_segment__buffer_info_0
() from
/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/doom-modeline-segments-ec8426c7-61011079.eln
#66 0x00000000005ab556 in eval_sub (form=form <at> entry=0x54aafa3) at
eval.c:2595
#67 0x00000000005acdda in Feval (form=0x54aafa3, lexical=<optimized out>)
at eval.c:2462
#68 0x00000000005aa3f0 in funcall_subr (subr=subr <at> entry=0xc75b80 <Seval>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff8228) at eval.c:3163
#69 0x00000000005abdab in funcall_general (fun=0xc75b85 <Seval+5>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff8228) at
/build/source/src/lisp.h:2243
#70 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=3,
args=args <at> entry=0x7fffffff8220)
at eval.c:3093
#71 0x00000000005a7fd6 in internal_condition_case_n (bfun=bfun <at> entry=0x5a8f78
<Ffuncall>, nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffff8220,
handlers=handlers <at> entry=0x30, hfun=hfun <at> entry=0x44fa4c
<dsafe_eval_handler>) at eval.c:1693
#72 0x000000000043dd89 in dsafe__call (inhibit_quit=inhibit_quit <at> entry=true,
f=0x5a8f78 <Ffuncall>, nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffff8220)
at xdisp.c:3067
#73 0x000000000043de8e in dsafe_eval (sexpr=<optimized out>) at xdisp.c:3103
#74 0x0000000000468615 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=5, depth <at> entry=4, field_width=0, precision=-10, elt=0x54aafc3,
props=props <at> entry=0x0, risky=false) at xdisp.c:27919
#75 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=4, depth <at> entry=3, field_width=0, precision=0, elt=<optimized out>,
props=props <at> entry=0x0, risky=false) at xdisp.c:28005
#76 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=3, depth <at> entry=2, field_width=field_width <at> entry=0,
precision=precision <at> entry=0, elt=<optimized out>, props=props <at> entry=0x0,
risky=false) at xdisp.c:28005
#77 0x0000000000468650 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=2, depth <at> entry=1, field_width=0, precision=0, elt=0x54a08d3,
props=props <at> entry=0x0, risky=false) at xdisp.c:27928
#78 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=1, depth <at> entry=0, field_width=field_width <at> entry=0,
precision=precision <at> entry=0, elt=<optimized out>, elt <at> entry=0x54a08f3,
props=props <at> entry=0x0, risky=false) at xdisp.c:28005
#79 0x0000000000469653 in display_mode_line (w=w <at> entry=0x18e5e010,
face_id=MODE_LINE_ACTIVE_FACE_ID, format=0x54a08f3) at xdisp.c:27430
#80 0x000000000046b52c in display_mode_lines (w=w <at> entry=0x18e5e010) at
xdisp.c:27343
#81 0x000000000047c642 in redisplay_window (window=0x18e5e015,
just_this_one_p=just_this_one_p <at> entry=true) at xdisp.c:20933
#82 0x000000000047df46 in redisplay_window_1 (window=window <at> entry=0x18e5e015)
at xdisp.c:18030
#83 0x00000000005a7ea9 in internal_condition_case_1 (bfun=bfun <at> entry=0x47df0f
<redisplay_window_1>, arg=0x18e5e015, handlers=<optimized out>,
hfun=hfun <at> entry=0x43ee0b <redisplay_window_error>) at eval.c:1637
#84 0x000000000046cf5f in redisplay_internal () at xdisp.c:17518
#85 0x000000000046d411 in redisplay_preserve_echo_area
(from_where=from_where <at> entry=8) at xdisp.c:17749
#86 0x000000000053610a in detect_input_pending_run_timers
(do_display=do_display <at> entry=true) at keyboard.c:11576
#87 0x00000000005f8c33 in wait_reading_process_output
(time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0,
read_kbd=read_kbd <at> entry=-1,
do_display=do_display <at> entry=true, wait_for_cell=wait_for_cell <at> entry=0x0,
wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at process.c:5844
#88 0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffdb18,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:4094
#89 0x00000000005370d4 in read_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb) at keyboard.c:2330
#90 0x000000000053724a in read_decoded_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
prev_event=prev_event <at> entry=0x0,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb)
at keyboard.c:2393
#91 0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x395c72d3,
prev_event=0x0, used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:3015
#92 0x0000000000539789 in read_key_sequence
(keybuf=keybuf <at> entry=0x7fffffffe1f0,
prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry=false,
can_return_switch_frame=can_return_switch_frame <at> entry=true,
fix_current_buffer=fix_current_buffer <at> entry=true,
prevent_redisplay=prevent_redisplay <at> entry=false,
    disable_text_conversion_p=false) at keyboard.c:10743
#93 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
#94 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce
<command_loop_1>, handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b
<cmd_error>) at eval.c:1613
#95 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90) at
keyboard.c:1168
#96 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0,
func=func <at> entry=0x529294 <command_loop_2>, arg=arg <at> entry=0x90) at
eval.c:1292
#97 0x000000000052926b in command_loop () at keyboard.c:1146
#98 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
#99 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
#100 0x0000000000528660 in main (argc=<optimized out>, argv=0x7fffffffe5b8)
at emacs.c:2635

(gdb) set print elements 0
(gdb) bt full
..... REDACTED
#50 0x0000000000546b5c in emacs_abort () at sysdep.c:2391
No locals.
#51 0x00000000005895f3 in process_mark_stack (base_sp=base_sp <at> entry=0) at
alloc.c:7489
        obj = 0xffdf6e1
        po = <optimized out>
#52 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
        sp = 0
#53 0x0000000000589719 in mark_maybe_pointer (p=p <at> entry=0x196922b5,
symbol_only=symbol_only <at> entry=false) at alloc.c:5260
        obj = <optimized out>
        m = <optimized out>
#54 0x000000000058979b in mark_memory (start=<optimized out>,
end=end <at> entry=0x7fffffff7ca0)
at alloc.c:5310
        p = 0x196922b5
        ip = <optimized out>
        pp = 0x7fffffffc560 "\265\"i\031"
        tem = <optimized out>
#55 0x00000000005897cc in mark_c_stack (bottom=<optimized out>,
end=end <at> entry=0x7fffffff7ca0 "\340|\377\377\377\177") at alloc.c:5493
No locals.
#56 0x00000000006181be in mark_one_thread (thread=thread <at> entry=0xc5d940
<main_thread>) at thread.c:670
        stack_top = 0x7fffffff7ca0
#57 0x0000000000618229 in mark_threads_callback (ignore=ignore <at> entry=0x0)
at thread.c:703
        thread_obj = 0xc5d945 <main_thread+5>
        iter = 0xc5d940 <main_thread>
#58 0x000000000058848b in flush_stack_call_func1 (func=func <at> entry=0x61820b
<mark_threads_callback>, arg=arg <at> entry=0x0) at alloc.c:5534
        end = 0x7fffffff7ca0
        self = <optimized out>
        sentry = <optimized out>
#59 0x000000000061875d in flush_stack_call_func (func=0x61820b
<mark_threads_callback>, arg=0x0) at /build/source/src/lisp.h:4509
No locals.
#60 mark_threads () at thread.c:710
No locals.
#61 0x0000000000589aa8 in garbage_collect () at alloc.c:6605
        tail = <optimized out>
        buffer = <optimized out>
        stack_top_variable = 0 '\000'
        message_p = true
        count = <optimized out>
        start = <optimized out>
        tot_before = 18446744073709551615
        visitor = <optimized out>
#62 0x0000000000589dfd in maybe_garbage_collect () at alloc.c:6507
No locals.
#63 0x00000000005a90ad in maybe_gc () at /build/source/src/lisp.h:5929
No locals.
#64 Ffuncall (nargs=1, args=0x7fffffff7db8) at eval.c:3088
        count = <optimized out>
        val = <optimized out>
#65 0x000015553b320855 in
F646f6f6d2d6d6f64656c696e652d7365676d656e742d2d6275666665722d696e666f_doom_modeline_segment__buffer_info_0
() from
/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/doom-modeline-segments-ec8426c7-61011079.eln
No symbol table info available.
#66 0x00000000005ab556 in eval_sub (form=form <at> entry=0x54aafa3) at
eval.c:2595
        i = 0
        maxargs = 0
        args_left = 0x0
        numargs = 0
        original_fun = <optimized out>
        original_args = 0x0
        count = <optimized out>
        fun = 0x5424a6d
        val = <optimized out>
        funcar = <optimized out>
        argvals = {0x7fffffff8228, 0x15554f39c1d3, 0x5d8769c0, 0x1,
0x5d8769c0, 0x7fffffff8228, 0xc75b80 <Seval>, 0x5a7566 <do_specbind+65>}
        retry = <optimized out>
#67 0x00000000005acdda in Feval (form=0x54aafa3, lexical=<optimized out>)
at eval.c:2462
        count = <optimized out>
#68 0x00000000005aa3f0 in funcall_subr (subr=subr <at> entry=0xc75b80 <Seval>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff8228) at eval.c:3163
        argbuf = {0x94751110, 0x6f, 0x1, 0x4aadee669fd7c800, 0xd00900
<lispsym+44448>, 0x0, 0x15554f4be9c8, 0x2}
        a = <optimized out>
        maxargs = 2
        fun = <optimized out>
#69 0x00000000005abdab in funcall_general (fun=0xc75b85 <Seval+5>,
numargs=numargs <at> entry=2, args=args <at> entry=0x7fffffff8228) at
/build/source/src/lisp.h:2243
        original_fun = 0x7cb0
#70 0x00000000005a903e in Ffuncall (nargs=nargs <at> entry=3,
args=args <at> entry=0x7fffffff8220)
at eval.c:3093
        count = {bytes = 576}
        val = <optimized out>
#71 0x00000000005a7fd6 in internal_condition_case_n (bfun=bfun <at> entry=0x5a8f78
<Ffuncall>, nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffff8220,
handlers=handlers <at> entry=0x30, hfun=hfun <at> entry=0x44fa4c
<dsafe_eval_handler>) at eval.c:1693
        val = <optimized out>
        c = 0xe5f070
#72 0x000000000043dd89 in dsafe__call (inhibit_quit=inhibit_quit <at> entry=true,
f=0x5a8f78 <Ffuncall>, nargs=nargs <at> entry=3, args=args <at> entry=0x7fffffff8220)
at xdisp.c:3067
        count = <optimized out>
        val = <optimized out>
#73 0x000000000043de8e in dsafe_eval (sexpr=<optimized out>) at xdisp.c:3103
No locals.
#74 0x0000000000468615 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=5, depth <at> entry=4, field_width=0, precision=-10, elt=0x54aafc3,
props=props <at> entry=0x0, risky=false) at xdisp.c:27919
        spec = <optimized out>
        car = 0xf00
        tem = <optimized out>
        n = 0
        field = <optimized out>
        prec = <optimized out>
        literal = false
#75 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=4, depth <at> entry=3, field_width=0, precision=0, elt=<optimized out>,
props=props <at> entry=0x0, risky=false) at xdisp.c:28005
        li = {tortoise = 0x54aaf53, max = 8, n = 0, q = 6}
        car = <optimized out>
        tem = <optimized out>
        n = 10
        field = <optimized out>
        prec = <optimized out>
        literal = <optimized out>
#76 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=3, depth <at> entry=2, field_width=field_width <at> entry=0,
precision=precision <at> entry=0, elt=<optimized out>, props=props <at> entry=0x0,
risky=false) at xdisp.c:28005
        li = {tortoise = 0x6851e693, max = 2, n = 0, q = 2}
        car = <optimized out>
        tem = <optimized out>
        n = 0
        field = <optimized out>
        prec = <optimized out>
        literal = <optimized out>
#77 0x0000000000468650 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=2, depth <at> entry=1, field_width=0, precision=0, elt=0x54a08d3,
props=props <at> entry=0x0, risky=false) at xdisp.c:27928
        spec = <optimized out>
        car = 0xf00
        tem = <optimized out>
        n = 0
        field = <optimized out>
        prec = <optimized out>
        literal = false
#78 0x00000000004687f5 in display_mode_element (it=it <at> entry=0x7fffffff86d0,
depth=1, depth <at> entry=0, field_width=field_width <at> entry=0,
precision=precision <at> entry=0, elt=<optimized out>, elt <at> entry=0x54a08f3,
props=props <at> entry=0x0, risky=false) at xdisp.c:28005
        li = {tortoise = 0x54a08f3, max = 2, n = 0, q = 1}
        car = <optimized out>
        tem = <optimized out>
        n = 0
        field = <optimized out>
        prec = <optimized out>
        literal = <optimized out>
#79 0x0000000000469653 in display_mode_line (w=w <at> entry=0x18e5e010,
face_id=MODE_LINE_ACTIVE_FACE_ID, format=0x54a08f3) at xdisp.c:27430
        it = {window = 0x18e5e015, w = 0x18e5e010, f = 0x8f9aca0, method =
GET_FROM_STRING, stop_charpos = 4, prev_stop = 3, base_level_stop = 3,
end_charpos = 4, medium_narrowing_begv = 0, medium_narrowing_zv = 0,
large_narrowing_begv = 0, large_narrowing_zv = 0, s = 0x0, string_nchars =
4, multibyte_p = false,
          tab_line_p = false, header_line_p = false,
string_from_display_prop_p = false, string_from_prefix_prop_p = false,
from_disp_prop_p = false, ellipsis_p = false, avoid_cursor_p = false, dp =
0x7917aa0, dpvec = 0x0, dpend = 0x0, dpvec_char_len = 0, dpvec_face_id = 0,
saved_face_id = 1, ctl_chars = {
            0x0 <repeats 16 times>}, start = {pos = {charpos = 0, bytepos =
0}, overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, current = {pos = {charpos = 0, bytepos = 0},
overlay_string_index = -1, string_pos = {charpos = 4, bytepos = 4},
dpvec_index = -1},
          n_overlay_strings = 0, overlay_strings_charpos = 0,
overlay_strings = {0x0 <repeats 16 times>}, string_overlays = {0x0 <repeats
16 times>}, string = 0x62375bd4, from_overlay = 0x0, stack = {{string =
0x62375eb4, string_nchars = 2, end_charpos = 2, stop_charpos = 1, prev_stop
= 0, base_level_stop = 0,
              cmp_it = {stop_pos = 2, id = -1, ch = -2, rule_idx = 0,
lookback = 0, nglyphs = 0, reversed_p = false, parent_it = 0x7fffffff86d0,
charpos = 0, nchars = 0, nbytes = 0, from = 0, to = 0, width = 0}, face_id
= 1, u = {image = {object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0,
height = 0x0},
                  image_id = 0}, stretch = {object = 0x0}, xwidget =
{object = 0x0}}, position = {charpos = 1, bytepos = 1}, current = {pos =
{charpos = 0, bytepos = 0}, overlay_string_index = -1, string_pos =
{charpos = 1, bytepos = 1}, dpvec_index = -1}, from_overlay = 0x0, area =
TEXT_AREA,
              method = GET_FROM_STRING, paragraph_embedding = L2R,
multibyte_p = false, string_from_display_prop_p = false,
string_from_prefix_prop_p = false, display_ellipsis_p = false,
avoid_cursor_p = false, bidi_p = true, from_disp_prop_p = false, line_wrap
= TRUNCATE, voffset = 0, space_width = 0x0,
              font_height = 0x0}, {string = 0x0, string_nchars = 0,
end_charpos = 0, stop_charpos = 0, prev_stop = 0, base_level_stop = 0,
cmp_it = {stop_pos = 0, id = 0, ch = 0, rule_idx = 0, lookback = 0, nglyphs
= 0, reversed_p = false, parent_it = 0x0, charpos = 0, nchars = 0, nbytes =
0, from = 0, to = 0,
                width = 0}, face_id = 0, u = {image = {object = 0x0, slice
= {x = 0x0, y = 0x0, width = 0x0, height = 0x0}, image_id = 0}, stretch =
{object = 0x0}, xwidget = {object = 0x0}}, position = {charpos = 0, bytepos
= 0}, current = {pos = {charpos = 0, bytepos = 0}, overlay_string_index =
0, string_pos = {
                  charpos = 0, bytepos = 0}, dpvec_index = 0}, from_overlay
= 0x0, area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER,
paragraph_embedding = NEUTRAL_DIR, multibyte_p = false,
string_from_display_prop_p = false, string_from_prefix_prop_p = false,
display_ellipsis_p = false, avoid_cursor_p = false,
              bidi_p = false, from_disp_prop_p = false, line_wrap =
TRUNCATE, voffset = 0, space_width = 0x0, font_height = 0x0}, {string =
0x0, string_nchars = 0, end_charpos = 0, stop_charpos = 0, prev_stop = 0,
base_level_stop = 0, cmp_it = {stop_pos = 0, id = 0, ch = 0, rule_idx = 0,
lookback = 0, nglyphs = 0,
                reversed_p = false, parent_it = 0x0, charpos = 0, nchars =
0, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u = {image =
{object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0, height = 0x0},
image_id = 0}, stretch = {object = 0x0}, xwidget = {object = 0x0}},
position = {charpos = 0,
                bytepos = 0}, current = {pos = {charpos = 0, bytepos = 0},
overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, from_overlay = 0x0, area = LEFT_MARGIN_AREA, method =
GET_FROM_BUFFER, paragraph_embedding = NEUTRAL_DIR, multibyte_p = false,
              string_from_display_prop_p = false, string_from_prefix_prop_p
= false, display_ellipsis_p = false, avoid_cursor_p = false, bidi_p =
false, from_disp_prop_p = false, line_wrap = TRUNCATE, voffset = 0,
space_width = 0x0, font_height = 0x0}, {string = 0x0, string_nchars = 0,
end_charpos = 0,
              stop_charpos = 0, prev_stop = 0, base_level_stop = 0, cmp_it
= {stop_pos = 0, id = 0, ch = 0, rule_idx = 0, lookback = 0, nglyphs = 0,
reversed_p = false, parent_it = 0x0, charpos = 0, nchars = 0, nbytes = 0,
from = 0, to = 0, width = 0}, face_id = 0, u = {image = {object = 0x0,
slice = {x = 0x0,
                    y = 0x0, width = 0x0, height = 0x0}, image_id = 0},
stretch = {object = 0x0}, xwidget = {object = 0x0}}, position = {charpos =
0, bytepos = 0}, current = {pos = {charpos = 0, bytepos = 0},
overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, from_overlay = 0x0,
              area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER,
paragraph_embedding = NEUTRAL_DIR, multibyte_p = false,
string_from_display_prop_p = false, string_from_prefix_prop_p = false,
display_ellipsis_p = false, avoid_cursor_p = false, bidi_p = false,
from_disp_prop_p = false, line_wrap = TRUNCATE,
              voffset = 0, space_width = 0x0, font_height = 0x0}, {string =
0x0, string_nchars = 0, end_charpos = 0, stop_charpos = 0, prev_stop = 0,
base_level_stop = 0, cmp_it = {stop_pos = 0, id = 0, ch = 0, rule_idx = 0,
lookback = 0, nglyphs = 0, reversed_p = false, parent_it = 0x0, charpos =
0, nchars = 0,
                nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u =
{image = {object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0, height =
0x0}, image_id = 0}, stretch = {object = 0x0}, xwidget = {object = 0x0}},
position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,
bytepos = 0},
                overlay_string_index = 0, string_pos = {charpos = 0,
bytepos = 0}, dpvec_index = 0}, from_overlay = 0x0, area =
LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, paragraph_embedding =
NEUTRAL_DIR, multibyte_p = false, string_from_display_prop_p = false,
string_from_prefix_prop_p = false,
              display_ellipsis_p = false, avoid_cursor_p = false, bidi_p =
false, from_disp_prop_p = false, line_wrap = TRUNCATE, voffset = 0,
space_width = 0x0, font_height = 0x0}}, sp = 0, selective = 0, what =
IT_EOB, face_id = 1, selective_display_ellipsis_p = true, ctl_arrow_p =
true, face_box_p = false,
          start_of_box_run_p = false, end_of_box_run_p = false,
overlay_strings_at_end_processed_p = false, ignore_overlay_strings_at_pos_p
= false, glyph_not_available_p = false, starts_in_middle_of_char_p = false,
face_before_selective_p = false, constrain_row_ascent_descent_p = false,
          line_number_produced_p = false, align_visually_p = false,
line_wrap = TRUNCATE, base_face_id = 1, c = 32, len = 1, cmp_it = {stop_pos
= 4, id = -1, ch = -2, rule_idx = 0, lookback = 0, nglyphs = 0, reversed_p
= false, parent_it = 0x7fffffff86d0, charpos = 0, nchars = 0, nbytes = 0,
from = 0, to = 0,
            width = 0}, char_to_display = 32, glyphless_method =
GLYPHLESS_DISPLAY_THIN_SPACE, image_id = 0, xwidget = 0x0, slice = {x =
0x0, y = 0x0, width = 0x0, height = 0x0}, space_width = 0x0, voffset = 0,
tab_width = 4, font_height = 0x0, object = 0x62375bd4, position = {charpos
= 3, bytepos = 3},
          truncation_pixel_width = 12, continuation_pixel_width = 0,
first_visible_x = 0, last_visible_x = 2561, last_visible_y = 1983,
extra_line_spacing = 0, max_extra_line_spacing = 0, override_ascent = -1,
override_descent = 0, override_boff = 0, glyph_row = 0x94751110, area =
TEXT_AREA, nglyphs = 1,
          pixel_width = 12, ascent = 18, descent = 6, max_ascent = 18,
max_descent = 6, phys_ascent = 0, phys_descent = 0, max_phys_ascent = 18,
max_phys_descent = 6, current_x = 111, wrap_prefix_width = 0,
continuation_lines_width = 0, eol_pos = {charpos = 0, bytepos = 0},
current_y = 0, first_vpos = 0, vpos = 0,
          hpos = 10, lnum = 0, lnum_bytepos = 0, lnum_width = 0,
lnum_pixel_width = 0, pt_lnum = 0, stretch_adjust = 0,
left_user_fringe_bitmap = 0, right_user_fringe_bitmap = 0,
left_user_fringe_face_id = 0, right_user_fringe_face_id = 0, bidi_p = true,
bidi_it = {bytepos = 4, charpos = 4, ch = -1, nchars = 1,
            ch_len = 1, type = NEUTRAL_B, type_after_wn = NEUTRAL_B,
orig_type = NEUTRAL_B, resolved_level = 0 '\000', isolate_level = 0 '\000',
invalid_levels = 0, invalid_isolates = 0, prev = {charpos = 3, type =
UNKNOWN_BT, orig_type = NEUTRAL_WS}, last_strong = {charpos = 2, type =
UNKNOWN_BT,
              orig_type = UNKNOWN_BT}, next_for_neutral = {charpos = -1,
type = UNKNOWN_BT, orig_type = UNKNOWN_BT}, prev_for_neutral = {charpos =
4, type = STRONG_L, orig_type = NEUTRAL_WS}, next_for_ws = {charpos = 4,
type = NEUTRAL_B, orig_type = UNKNOWN_BT}, bracket_pairing_pos = -1,
            bracket_enclosed_type = UNKNOWN_BT, next_en_pos = 0,
next_en_type = UNKNOWN_BT, sos = L2R, scan_dir = 1, disp_pos = 4, disp_prop
= 0, stack_idx = 0, level_stack = {{next_for_neutral_pos = 0,
next_for_neutral_type = 0, last_strong_type = 0, prev_for_neutral_type = 0,
level = 0 '\000',
                flags = 0 '\000'} <repeats 128 times>}, string = {lstring =
0x62375bd4, s = 0x0, schars = 4, bufpos = 0, from_disp_str = false, unibyte
= true}, w = 0x18e5e010, paragraph_dir = L2R, separator_limit = 4,
first_elt = false, new_paragraph = false, frame_window_p = true},
paragraph_embedding = L2R,
          min_width_property = 0x0, min_width_start = 0}
        face = <optimized out>
        count = <optimized out>
#80 0x000000000046b52c in display_mode_lines (w=w <at> entry=0x18e5e010) at
xdisp.c:27343
        window_mode_line_format = <optimized out>
        sel_w = 0x18e5e010
        old_selected_window = 0x18e5e015
        new_frame = 0x8f9aca5
        count = <optimized out>
        n = 0
#81 0x000000000047c642 in redisplay_window (window=0x18e5e015,
just_this_one_p=just_this_one_p <at> entry=true) at xdisp.c:20933
        count1 = <optimized out>
        w = 0x18e5e010
        f = <optimized out>
        buffer = <optimized out>
        old = <optimized out>
        lpoint = <optimized out>
        opoint = <optimized out>
        startp = <optimized out>
        update_mode_line = false
        tem = <optimized out>
        it = {window = 0x0, w = 0x0, f = 0x0, method = GET_FROM_BUFFER,
stop_charpos = 1, prev_stop = 1, base_level_stop = -1, end_charpos = -1,
medium_narrowing_begv = -1, medium_narrowing_zv = 4294967295,
large_narrowing_begv = 6, large_narrowing_zv = 6,
          s = 0xffffffffffffffff <error: Cannot access memory at address
0xffffffffffffffff>, string_nchars = -1, multibyte_p = true, tab_line_p =
true, header_line_p = true, string_from_display_prop_p = true,
string_from_prefix_prop_p = true, from_disp_prop_p = true, ellipsis_p =
true, avoid_cursor_p = true,
          dp = 0xffffffff, dpvec = 0x0, dpend = 0x1, dpvec_char_len = 0,
dpvec_face_id = 0, saved_face_id = 0, ctl_chars = {0x0 <repeats 16 times>},
start = {pos = {charpos = 0, bytepos = 0}, overlay_string_index = 0,
string_pos = {charpos = 0, bytepos = 0}, dpvec_index = 0}, current = {pos =
{charpos = 0,
              bytepos = 0}, overlay_string_index = 0, string_pos = {charpos
= 0, bytepos = 0}, dpvec_index = 0}, n_overlay_strings = 0,
overlay_strings_charpos = 0, overlay_strings = {0x0 <repeats 16 times>},
string_overlays = {0x0 <repeats 16 times>}, string = 0x0, from_overlay =
0x0, stack = {{string = 0x0,
              string_nchars = 0, end_charpos = 0, stop_charpos = 0,
prev_stop = 0, base_level_stop = 0, cmp_it = {stop_pos = 0, id = 0, ch = 0,
rule_idx = 0, lookback = 0, nglyphs = 0, reversed_p = false, parent_it =
0x0, charpos = 0, nchars = 0, nbytes = 0, from = 0, to = 0, width = 0},
face_id = 0, u = {image = {
                  object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0,
height = 0x0}, image_id = 0}, stretch = {object = 0x0}, xwidget = {object =
0x0}}, position = {charpos = 0, bytepos = 0}, current = {pos = {charpos =
0, bytepos = 0}, overlay_string_index = 0, string_pos = {charpos = 0,
bytepos = 0},
                dpvec_index = 0}, from_overlay = 0x0, area =
LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, paragraph_embedding =
NEUTRAL_DIR, multibyte_p = false, string_from_display_prop_p = false,
string_from_prefix_prop_p = false, display_ellipsis_p = false,
avoid_cursor_p = false, bidi_p = false,
              from_disp_prop_p = false, line_wrap = TRUNCATE, voffset = 0,
space_width = 0x0, font_height = 0x0}, {string = 0x0, string_nchars = 0,
end_charpos = 0, stop_charpos = 0, prev_stop = 0, base_level_stop = 0,
cmp_it = {stop_pos = 0, id = 0, ch = 0, rule_idx = 0, lookback = 0, nglyphs
= 0,
                reversed_p = false, parent_it = 0x0, charpos = 0, nchars =
0, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u = {image =
{object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0, height = 0x0},
image_id = 0}, stretch = {object = 0x0}, xwidget = {object = 0x0}},
position = {charpos = 0,
                bytepos = 0}, current = {pos = {charpos = 0, bytepos = 0},
overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, from_overlay = 0x0, area = LEFT_MARGIN_AREA, method =
GET_FROM_BUFFER, paragraph_embedding = NEUTRAL_DIR, multibyte_p = false,
              string_from_display_prop_p = false, string_from_prefix_prop_p
= false, display_ellipsis_p = false, avoid_cursor_p = false, bidi_p =
false, from_disp_prop_p = false, line_wrap = TRUNCATE, voffset = 0,
space_width = 0x0, font_height = 0x0}, {string = 0x0, string_nchars = 0,
end_charpos = 0,
              stop_charpos = 0, prev_stop = 0, base_level_stop = 0, cmp_it
= {stop_pos = 0, id = 0, ch = 0, rule_idx = 0, lookback = 0, nglyphs = 0,
reversed_p = false, parent_it = 0x0, charpos = 0, nchars = 0, nbytes = 0,
from = 0, to = 0, width = 0}, face_id = 0, u = {image = {object = 0x0,
slice = {x = 0x0,
                    y = 0x0, width = 0x0, height = 0x0}, image_id = 0},
stretch = {object = 0x0}, xwidget = {object = 0x0}}, position = {charpos =
0, bytepos = 0}, current = {pos = {charpos = 0, bytepos = 0},
overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, from_overlay = 0x0,
              area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER,
paragraph_embedding = NEUTRAL_DIR, multibyte_p = false,
string_from_display_prop_p = false, string_from_prefix_prop_p = false,
display_ellipsis_p = false, avoid_cursor_p = false, bidi_p = false,
from_disp_prop_p = false, line_wrap = TRUNCATE,
              voffset = 0, space_width = 0x0, font_height = 0x0}, {string =
0x0, string_nchars = 0, end_charpos = 0, stop_charpos = 0, prev_stop = 0,
base_level_stop = 0, cmp_it = {stop_pos = 0, id = 0, ch = 0, rule_idx = 0,
lookback = 0, nglyphs = 0, reversed_p = false, parent_it = 0x0, charpos =
0, nchars = 0,
                nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u =
{image = {object = 0x0, slice = {x = 0x0, y = 0x0, width = 0x0, height =
0x0}, image_id = 0}, stretch = {object = 0x0}, xwidget = {object = 0x0}},
position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,
bytepos = 0},
                overlay_string_index = 0, string_pos = {charpos = 0,
bytepos = 0}, dpvec_index = 0}, from_overlay = 0x0, area =
LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, paragraph_embedding =
NEUTRAL_DIR, multibyte_p = false, string_from_display_prop_p = false,
string_from_prefix_prop_p = false,
              display_ellipsis_p = false, avoid_cursor_p = false, bidi_p =
false, from_disp_prop_p = false, line_wrap = TRUNCATE, voffset = 0,
space_width = 0x0, font_height = 0x0}, {string = 0x0, string_nchars = 0,
end_charpos = 0, stop_charpos = 0, prev_stop = 0, base_level_stop = 0,
cmp_it = {stop_pos = 0,
                id = 0, ch = 0, rule_idx = 4294967299, lookback =
493921239040, nglyphs = 1, reversed_p = false, parent_it = 0x6, charpos =
-1, nchars = -2, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u =
{image = {object = 0x7fffffffae50, slice = {x = 0x0, y = 0x0, width = 0x0,
height = 0x0},
                  image_id = 115}, stretch = {object = 0x7fffffffae50},
xwidget = {object = 0x7fffffffae50}}, position = {charpos = 0, bytepos =
0}, current = {pos = {charpos = 0, bytepos = 0}, overlay_string_index = 0,
string_pos = {charpos = 0, bytepos = 0}, dpvec_index = 262144},
from_overlay = 0x0,
              area = 68030565, method = GET_FROM_BUFFER,
paragraph_embedding = (R2L | unknown: 0x4), multibyte_p = false,
string_from_display_prop_p = false, string_from_prefix_prop_p = false,
display_ellipsis_p = false, avoid_cursor_p = false, bidi_p = false,
from_disp_prop_p = false,
              line_wrap = (WINDOW_WRAP | unknown: 0x4), voffset = 0,
space_width = 0xc0000, font_height = 0x18000013ee}}, sp = 0, selective =
4294967295, what = IT_CHARACTER, face_id = 0, selective_display_ellipsis_p
= false, ctl_arrow_p = false, face_box_p = false, start_of_box_run_p =
false,
          end_of_box_run_p = false, overlay_strings_at_end_processed_p =
true, ignore_overlay_strings_at_pos_p = true, glyph_not_available_p = true,
starts_in_middle_of_char_p = false, face_before_selective_p = false,
constrain_row_ascent_descent_p = false, line_number_produced_p = true,
align_visually_p = false,
          line_wrap = TRUNCATE, base_face_id = 1, c = 1, len = 12, cmp_it =
{stop_pos = 77309411334, id = 6, ch = 0, rule_idx = 257698037760, lookback
= 0, nglyphs = 0, reversed_p = false, parent_it = 0x0, charpos = 0, nchars
= 0, nbytes = 5, from = 0, to = 0, width = 0}, char_to_display = 0,
          glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE, image_id = 0,
xwidget = 0x0, slice = {x = 0x10000000000000, y = 0x6, width = 0x6, height
= 0x73}, space_width = 0x1, voffset = 1, tab_width = 0, font_height =
0x100000001, object = 0x1, position = {charpos = 0, bytepos = 0},
truncation_pixel_width = 5,
          continuation_pixel_width = 0, first_visible_x = 0, last_visible_x
= 22, last_visible_y = 22, extra_line_spacing = 4, max_extra_line_spacing =
0, override_ascent = 1, override_descent = 1, override_boff = -1, glyph_row
= 0x0, area = 5, nglyphs = 0, pixel_width = 1, ascent = 22, descent = 6,
max_ascent = 0,
          max_descent = 1, phys_ascent = 0, phys_descent = -1,
max_phys_ascent = -1, max_phys_descent = 0, current_x = 0,
wrap_prefix_width = 0, continuation_lines_width = 0, eol_pos = {charpos =
4294967296, bytepos = 1}, current_y = 9, first_vpos = 0, vpos = 0, hpos =
0, lnum = 0, lnum_bytepos = 0, lnum_width = 0,
          lnum_pixel_width = 0, pt_lnum = 0, stretch_adjust = 0,
left_user_fringe_bitmap = 0, right_user_fringe_bitmap = 0,
left_user_fringe_face_id = 0, right_user_fringe_face_id = 0, bidi_p =
false, bidi_it = {bytepos = 0, charpos = 0, ch = 0, nchars = 0, ch_len = 0,
type = UNKNOWN_BT, type_after_wn = UNKNOWN_BT,
            orig_type = UNKNOWN_BT, resolved_level = 0 '\000',
isolate_level = 0 '\000', invalid_levels = 0, invalid_isolates = 0, prev =
{charpos = 0, type = UNKNOWN_BT, orig_type = UNKNOWN_BT}, last_strong =
{charpos = 0, type = UNKNOWN_BT, orig_type = UNKNOWN_BT}, next_for_neutral
= {charpos = 0,
              type = UNKNOWN_BT, orig_type = UNKNOWN_BT}, prev_for_neutral
= {charpos = 0, type = UNKNOWN_BT, orig_type = UNKNOWN_BT}, next_for_ws =
{charpos = 0, type = UNKNOWN_BT, orig_type = UNKNOWN_BT},
bracket_pairing_pos = 0, bracket_enclosed_type = UNKNOWN_BT, next_en_pos =
0, next_en_type = UNKNOWN_BT,
            sos = NEUTRAL_DIR, scan_dir = 0, disp_pos = 0, disp_prop = 0,
stack_idx = 0, level_stack = {{next_for_neutral_pos = 0,
next_for_neutral_type = 0, last_strong_type = 0, prev_for_neutral_type = 0,
level = 0 '\000', flags = 0 '\000'} <repeats 114 times>,
{next_for_neutral_pos = 0,
                next_for_neutral_type = 0, last_strong_type = 4,
prev_for_neutral_type = 3, level = 178 '\262', flags = 23 '\027'},
{next_for_neutral_pos = 1, next_for_neutral_type = 7, last_strong_type = 7,
prev_for_neutral_type = 7, level = 255 '\377', flags = 255 '\377'},
{next_for_neutral_pos = 4,
                next_for_neutral_type = 1, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 0, next_for_neutral_type = 0, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 5381219254313404416,
                next_for_neutral_type = 0, last_strong_type = 4,
prev_for_neutral_type = 2, level = 249 '\371', flags = 8 '\b'},
{next_for_neutral_pos = 0, next_for_neutral_type = 1, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 1,
                next_for_neutral_type = 0, last_strong_type = 4,
prev_for_neutral_type = 2, level = 249 '\371', flags = 8 '\b'},
{next_for_neutral_pos = 0, next_for_neutral_type = 0, last_strong_type = 4,
prev_for_neutral_type = 3, level = 178 '\262', flags = 23 '\027'},
{next_for_neutral_pos = 4605185,
                next_for_neutral_type = 0, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 0, next_for_neutral_type = 1, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 1,
                next_for_neutral_type = 5, last_strong_type = 4,
prev_for_neutral_type = 3, level = 178 '\262', flags = 23 '\027'},
{next_for_neutral_pos = 397560544, next_for_neutral_type = 0,
last_strong_type = 4, prev_for_neutral_type = 2, level = 249 '\371', flags
= 8 '\b'}, {next_for_neutral_pos = 0,
                next_for_neutral_type = 1, last_strong_type = 1,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'},
{next_for_neutral_pos = 1, next_for_neutral_type = 0, last_strong_type = 0,
prev_for_neutral_type = 0, level = 0 '\000', flags = 0 '\000'}}, string =
{lstring = 0x9, s = 0x0, schars = 0,
              bufpos = 0, from_disp_str = false, unibyte = false}, w = 0x0,
paragraph_dir = NEUTRAL_DIR, separator_limit = 1, first_elt = false,
new_paragraph = false, frame_window_p = false}, paragraph_embedding =
NEUTRAL_DIR, min_width_property = 0x0, min_width_start = 0}
        current_matrix_up_to_date_p = <optimized out>
        used_current_matrix_p = false
        temp_scroll_step = false
        count = <optimized out>
        rc = <optimized out>
        centering_position = <optimized out>
        last_line_misfit = <optimized out>
        beg_unchanged = <optimized out>
        end_unchanged = <optimized out>
        frame_line_height = <optimized out>
        margin = <optimized out>
        use_desired_matrix = <optimized out>
        itdata = <optimized out>
        lchars_modiff = <optimized out>
        ochars_modiff = <optimized out>
        force_start = <optimized out>
#82 0x000000000047df46 in redisplay_window_1 (window=window <at> entry=0x18e5e015)
at xdisp.c:18030
No locals.
#83 0x00000000005a7ea9 in internal_condition_case_1 (bfun=bfun <at> entry=0x47df0f
<redisplay_window_1>, arg=0x18e5e015, handlers=<optimized out>,
hfun=hfun <at> entry=0x43ee0b <redisplay_window_error>) at eval.c:1637
        val = <optimized out>
        c = 0xe0fbf0
#84 0x000000000046cf5f in redisplay_internal () at xdisp.c:17518
        mini_window = <optimized out>
        mini_frame = <optimized out>
        w = 0x18e5e010
        sw = <optimized out>
        fr = <optimized out>
        pending = false
        must_finish = <optimized out>
        match_p = <optimized out>
        tlbufpos = {charpos = 11687, bytepos = 93918552}
        tlendpos = <optimized out>
        number_of_visible_frames = 4
        sf = 0x8f9aca0
        polling_stopped_here = <optimized out>
        tail = <optimized out>
        frame = <optimized out>
        MAX_HSCROLL_RETRIES = MAX_HSCROLL_RETRIES
        hscroll_retries = <optimized out>
        MAX_GARBAGED_FRAME_RETRIES = MAX_GARBAGED_FRAME_RETRIES
        garbaged_frame_retries = <optimized out>
        consider_all_windows_p = <optimized out>
        update_miniwindow_p = <optimized out>
        count = <optimized out>
        retry_frame = <optimized out>
#85 0x000000000046d411 in redisplay_preserve_echo_area
(from_where=from_where <at> entry=8) at xdisp.c:17749
        count = <optimized out>
#86 0x000000000053610a in detect_input_pending_run_timers
(do_display=do_display <at> entry=true) at keyboard.c:11576
        old_timers_run = 4316210
#87 0x00000000005f8c33 in wait_reading_process_output
(time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0,
read_kbd=read_kbd <at> entry=-1,
do_display=do_display <at> entry=true, wait_for_cell=wait_for_cell <at> entry=0x0,
wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at process.c:5844
        leave = false
        process_skipped = false
        wrapped = <optimized out>
        channel_start = <optimized out>
        child_fd = <optimized out>
        last_read_channel = 115
        channel = <optimized out>
        nfds = 0
        Available = {fds_bits = {391714348559326600, 1037009565033579808,
-9182804282222128720, 128, 0, 0, 2251799813685248, 0, 0, 0, 0, 0, 0, 0, 0,
0}}
        Writeok = {fds_bits = {0 <repeats 16 times>}}
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = false
        xerrno = 11
        proc = <optimized out>
        timeout = {tv_sec = 0, tv_nsec = 89779048}
        end_time = <optimized out>
        timer_delay = <optimized out>
        got_output_end_time = <optimized out>
        MINIMUM = MINIMUM
        TIMEOUT = TIMEOUT
        FOREVER = FOREVER
        wait = FOREVER
        got_some_output = -1
        prev_wait_proc_nbytes_read = 0
        retry_for_async = <optimized out>
        count = <optimized out>
        now = <optimized out>
#88 0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffdb18,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:4094
        do_display = true
        obj = <optimized out>
        str = <optimized out>
        had_pending_selection_requests = false
        had_pending_conversion_events = false
#89 0x00000000005370d4 in read_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb) at keyboard.c:2330
        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 = 0x1e381b40
        count = <optimized out>
#90 0x000000000053724a in read_decoded_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde40,
prev_event=prev_event <at> entry=0x0,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb)
at keyboard.c:2393
        nextevt = <optimized out>
        frame = <optimized out>
        terminal = <optimized out>
        events = {0x0, 0xffffffffffffffff, 0x0, 0x3d476d75, 0x0,
0x68389434, 0x272996e9, 0x0, 0x68389434, 0x2b591047, 0x0, 0xbebc200,
0x39d4ece3, 0x4aadee669fd7c800, 0x39d4f5c3, 0x4aadee669fd7c800}
        n = 0
#91 0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x395c72d3,
prev_event=0x0, used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0cb,
end_time=end_time <at> entry=0x0) at keyboard.c:3015
        c = 0x0
        local_getcjmp = {{__jmpbuf = {0, 474668369808441725, 0, 150580389,
0, 13113857, -474668370947751555, 474669034839851389}, __mask_was_saved =
0, __saved_mask = {__val = {2, 0, 93918557, 46750, 5928719, 1569155040,
5857403, 0, 68463568, 95439728, 5864240, 109946448, 5510427, 0, 4388885848,
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 = 0x1e381b40
        jmpcount = <optimized out>
#92 0x0000000000539789 in read_key_sequence
(keybuf=keybuf <at> entry=0x7fffffffe1f0,
prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry=false,
can_return_switch_frame=can_return_switch_frame <at> entry=true,
fix_current_buffer=fix_current_buffer <at> entry=true,
prevent_redisplay=prevent_redisplay <at> entry=false,
    disable_text_conversion_p=false) at keyboard.c:10743
        interrupted_kboard = 0x1e381b40
        interrupted_frame = 0x8f9aca0
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = <optimized out>
        count = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 0x395c72d3
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = 0xed389c3, map = 0xed389c3, start = 0, end = 0}
        keytran = {parent = 0x15554f49541b, map = 0x15554f49541b, start =
0, end = 0}
        indec = {parent = 0xed389d3, map = 0xed389d3, start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = 0x0
        original_uppercase = 0x2da6
        original_uppercase_position = -1
        disabled_conversion = false
        starting_buffer = 0x5991558
        fake_prefixed_keys = 0x0
        first_event = 0x0
        second_event = <optimized out>
#93 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
        cmd = <optimized out>
        keybuf = {0x12, 0x33273675, 0xfa2, 0x5982d3
<set_default_internal+530>, 0x7fffffffe270, 0x2, 0x30, 0x33273675, 0x0,
0x5a770f <do_one_unbind+319>, 0x7fffffffe2c0, 0x60, 0x0, 0x0, 0x0, 0x5a8d59
<unbind_to+105>, 0xb, 0x111c0, 0x30, 0x33273675, 0x7bc0,
0x4aadee669fd7c800, 0xcf32a0 <globals>, 0x28e04bf3, 0x60,
          0x52f4c6 <cmd_error+363>, 0x0, 0x4aadee669fd7c800, 0x60,
0x15554ed90d83}
        i = <optimized out>
        last_pt = <optimized out>
        prev_modiff = 463552
        prev_buffer = 0x5991558
#94 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce
<command_loop_1>, handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b
<cmd_error>) at eval.c:1613
        val = <optimized out>
        c = 0xe0fab0
#95 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90) at
keyboard.c:1168
        val = <optimized out>
#96 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0,
func=func <at> entry=0x529294 <command_loop_2>, arg=arg <at> entry=0x90) at
eval.c:1292
        val = <optimized out>
        c = 0xea0d90
#97 0x000000000052926b in command_loop () at keyboard.c:1146
No locals.
#98 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
        count = <optimized out>
        val = <optimized out>
#99 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
        count = <optimized out>
        buffer = <optimized out>
#100 0x0000000000528660 in main (argc=<optimized out>, argv=0x7fffffffe5b8)
at emacs.c:2635
        stack_bottom_variable = 0x155553f0c318 <_gnutls_lib_state>
        old_argc = <optimized out>
        dump_file = 0x0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {rlim_cur = 18446744073709551615, rlim_max =
18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>

(gdb) p last_marked_index
$4 = 28
(gdb) p last_marked
$5 = {0x18e5e015, 0x3b0b4753, 0x7699356d, 0x249d0a33, 0x6dc36f23,
0x6dc36f23, 0x15554df37b68, 0x7699356d, 0x15554df3e0a8, 0x7cfa99b5,
0x7699356d, 0x15554ec33b75, 0x15554ec33b75, 0xceb350, 0x15554ec33b75,
0x15554df3dfe0, 0x15554ec33b75, 0x15554ec336fd, 0x249d0d13, 0x15554ec336fd,
0x15554df3dfe0, 0x7699356d,
  0x15554ec3321d, 0x7699356d, 0x196922b5, 0x406, 0x15554efc8fac, 0xffdf6e1,
0x269b51f3, 0x17baf00, 0x269b5203, 0x285dedb4, 0x7, 0x0, 0x7 <repeats 28
times>, 0x0, 0x26bb673, 0x26bb683, 0x2850, 0x80a7962, 0x26153e3, 0x26153f3,
0x2cd0, 0x3a50fd2, 0x0, 0xc5d945 <main_thread+5>, 0x15554f2c7414,
0x15554f2bd8e5,
  0x15554f3d3b05, 0x15554f40bcad, 0x15554f42179d, 0x31b6f84, 0x31b6f64,
0x1e989095, 0x1555405ad9a3, 0x1555405ad993, 0x15554dfb73e0, 0x2,
0x15554ea99fd3, 0x15554ea99fc3, 0x15554e2a7328
<text_data_reloc_imp_blob+9864>, 0x15554ea99fb3, 0x30, 0x15554f454f23, 0x0,
0x0, 0x6c30, 0x6c30, 0x1da, 0x186, 0x1d2, 0xff90,
  0xff90, 0xff90, 0xff90, 0xff90, 0xff90, 0xff90, 0xbfa0, 0x15554df6a980,
0x7470, 0x15554de7b998, 0x15554e2e5518, 0x0, 0x33fca0, 0x33fca0, 0x0,
0x33fca0, 0x0, 0x0, 0x0, 0x0, 0x5b8d50a5, 0x6c30, 0x6c30, 0x1da, 0x186,
0x1d2, 0xff90, 0xff90, 0xff90, 0xff90, 0xff90, 0xff90, 0xff90, 0xbfa0,
0x15554df6a980, 0x7470,
  0x15554de7b998, 0x15554ebecf83, 0x18609703, 0x18609713, 0x23fc4a,
0x63b3a5d0, 0x18609723, 0x0, 0x14520, 0xed389d3, 0xbbe0, 0x21c8d723,
0x21c8d733, 0x36, 0x655837d, 0x1555409194c3, 0x15c6f93, 0x765bf9a3,
0x39b64813, 0x853000 <pure+1429280>, 0x15c3ea3, 0x765bf9b3, 0x39b64833,
0x2bee40, 0x160c305, 0x765bf9c3,
  0x39b64853, 0xbaf0, 0x160c2f5, 0x0, 0x0, 0x0, 0x22968973, 0x22968983,
0x26, 0xc1020d5, 0x1555409194c3, 0x15c6f93, 0x39b65523, 0x75e0a3a3,
0x853000 <pure+1429280>, 0x15c3e53, 0x39b65533, 0x75e0a3c3, 0x2bee40,
0x160c2e5, 0x39b65543, 0x75e0a3e3, 0xbaf0, 0x160c2d5, 0x0, 0x0, 0x0,
0x23292603, 0x23292613, 0x6e,
  0x4918e6d, 0x23292743, 0x23292753, 0x15554df6acf0, 0x232928a3,
0x232928b3, 0x15554e2678e8, 0x23292923, 0x23292933, 0x15554df6ade0,
0x232929c3, 0x232929d3, 0x15554e090f20, 0xed389c3, 0xbbe0, 0x23292a93,
0x23292aa3, 0x15554df6a980, 0x15554f07eabd, 0x23292b13, 0x23292b23,
0x15554e06d260, 0x15554f089e6d, 0x23292b93,
  0x23292ba3, 0x6c30, 0x15554f089e6d, 0xeb8e713, 0xbbe0, 0xeb8e693,
0xeb8e703, 0x15554df5c408, 0x15554ed86985, 0xeb8e613, 0xeb8e683,
0x15554df5c208, 0x15554ed869a5, 0xeb8e593, 0xeb8e5a3, 0x15554df6bcf0,
0x15554ed869c5, 0xeb8e573, 0xeb8e583, 0x15554df9e478, 0x15554ed869e5,
0xeb8e553, 0xeb8e563, 0x15554df2ac48,
  0x15554ed86a05, 0xeb8e533, 0xeb8e543, 0x15554dff6498, 0x15554ed86a25,
0xeb8e4b3, 0xeb8e523, 0x15554df0d870, 0x15554ed86a45, 0xeb8e493, 0xeb8e4a3,
0x15554e090f20, 0x15554ed86a65, 0xeb8e473, 0xeb8e483, 0x15554df6ade0,
0x15554ed86b55, 0x15554f49c31b, 0x8f9aca5, 0x0, 0x0, 0x0, 0x0, 0x0,
0x116ed15, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x15554eab8853, 0xbbe0, 0x15554eab8863, 0xbbe0,
0x15554f49c31b, 0x0, 0x0, 0x0, 0xc5d945 <main_thread+5>, 0x0, 0xada0, 0x0,
0x13110, 0x1d339873, 0x1555200014c5, 0xac80, 0x30, 0xfcc0, 0xad10, 0x30,
0xad40, 0x0, 0x18e5e015, 0x18e5e015, 0x26cbf15, 0x2, 0x2, 0x0, 0x30, 0x0,
0x0, 0x0, 0x0,
  0x18e5e015, 0x0, 0x599155d, 0x0, 0x7ada1273, 0x7c2, 0x7ada1283, 0x7d2,
0xada0, 0x0, 0xad40, 0x30, 0x7cb0, 0x54aafa3, 0x30, 0xb310, 0x0, 0x46c5150,
0x4665910, 0x150, 0x8255725, 0x4057374, 0x4057370, 0x62375bb4, 0x6851b233,
0x8160, 0x6851b243, 0x6851b283, 0x14a0, 0x6851b273, 0x49dca13, 0x1dcd93c4,
0x62375ac4,
  0x6851a983, 0x7050, 0x6851a9b3, 0x4fcc903, 0x6851a9c3, 0x8160,
0x6851a9d3, 0x6851b203, 0x14a0, 0x6851b1f3, 0x49dca13, 0x6851aa53, 0xfb10,
0x6851aa63, 0x30, 0x6851aa73, 0x7050, 0x6851ada3, 0x2719b833, 0x6851adb3,
0x8d90, 0x6851adc3, 0x2719b853, 0x6851add3, 0x8160, 0x6851ade3, 0x2719b3c3,
0x6851adf3, 0xa4d0,
  0x6851ae03, 0x1dcd9434, 0x6851b773, 0x14a0, 0x6851b763, 0x49dca13,
0x4fcc903, 0x4055fe4, 0x4055ff0, 0x62375bd4, 0x4665910, 0x62375bd4,
0x4055fe4, 0x4055ff0, 0x62375bd4, 0xeb73823, 0x1dcd93c4, 0x62375ae4,
0x6851ae53, 0x8160, 0x6851ae63, 0x6851b203, 0x6851ae73, 0x7050, 0x6851ae83,
0x4fcc903, 0x4070130, 0x1dcd93c4,
  0x539f884, 0x6851b283, 0xeb73823, 0x15554e484b60
<F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_4+176>, 0x539f884,
0x6851b203, 0x4fcc903, 0xd00e50 <lispsym+45808>, 0x5424a6d, 0x15554f39c1d3,
0xd00e50 <lispsym+45808>, 0x15554f39c1d3, 0x54aafa3, 0x54aafc3, 0x54aafc3,
0x54aafa3, 0x599155d, 0x6851e693,
  0x54aadd3, 0x6851e6a3, 0x62376b94, 0x6851e6c3, 0x8160, 0x6851e6d3,
0x49dca13, 0x6851e6e3, 0x7050, 0x6851e6f3, 0x6851e743, 0x10f80, 0x6851e753,
0x270, 0x6851e763, 0x6851e773, 0xd2f0, 0x6851e783, 0x100b0, 0x6851e793,
0x6851e7a3, 0xabe, 0x6851e6b3, 0x54ab153, 0x54aafd3, 0x54aadd3, 0x54aafd3,
0x54aaf53, 0x6851e693,
  0x6851e693, 0x6851e693, 0x6851e693, 0x54a08d3, 0x54a08d3, 0x54a08d3,
0x4d4b834, 0x1000000, 0x54a08e3, 0x54a08f3, 0x54a08e3, 0x54a08f3,
0x7ada1273, 0x18e5e015, 0x54a08f3, 0x8f9aca5, 0x18e5e015, 0x18e5e015,
0x18e5e015, 0x8f9aca5, 0x7917aa5, 0x62375bd4, 0x62375eb4, 0x62375bd4,
0x62375bd4, 0x18e5e015, 0x8f9aca5,
  0x18e5e015, 0x8f9aca5, 0x8f9aca5, 0x18e5e015, 0x18e5e015, 0x18e5e015,
0x599155d, 0x18e5e015, 0x8f9aca5, 0x599155d, 0x18e5e015, 0x8f9aca5,
0x40e1065, 0x17b24ae5, 0x8f9aca5, 0x8f9aca5, 0x17b24ae5, 0x17b24ae5,
0x17b24ae5, 0x8f9aca5, 0x7917aa5, 0x40e1065, 0xeb9f503, 0x40e1065,
0x40e1040, 0x15554dfbc8a8,
  0x15554f39bcad, 0x17b24d05, 0x15554f39bcad, 0x599155d, 0xdd4965,
0xeac0a5, 0x15554eab8103, 0x26c39e3, 0x15554f2d1613, 0x599155d, 0x599155d,
0x18e5e015, 0x8f9aca5, 0x599155d, 0x18e5e015, 0x18e5e015}
(gdb) p last_marked[last_marked_index]
$6 = (Lisp_Object) 0x269b51f3
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 30 May 2025 08:03:02 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 30 May 2025 08:02:08 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

> I got another crash, again in GC.

Interesting!

> I haven't had a chance to apply Pip's patch, so this is just 30.1 as
> before.

No problem.  This looks a bit different anyway.

> The trace looks a bit different, apologies if it's a different
> issue.

Well, it is an issue so we should try to get to the bottom of it.  Worst
case we'll end up fixing two bugs ;-)

> I still have the program under gdb.

It's a good idea to use "gcore" to generate a core file from gdb, just
in case the session is destroyed.

> I did not use any org-mode stuff, so my original hunch. The only
> unusual (from me) thing I did just before the crash was open up an
> eshell buffer, execute a couple of commands, and close it. I hadn't
> used eshell-mode before that in that session.

Can you check whether eln files were created just before the crash?
Over here, the relevant command would be

$ ls -Strl ~/.emacs.d/eln-cache/*/*

and looking at the last few lines to see whether any files have the
creation date in the right range (after you started using eshell but
before the crash happened).

> (gdb) set print elements 0
> (gdb) bt full
> ..... REDACTED
> #50 0x0000000000546b5c in emacs_abort () at sysdep.c:2391
> No locals.
> #51 0x00000000005895f3 in process_mark_stack (base_sp=base_sp <at> entry=0) at alloc.c:7489
>         obj = 0xffdf6e1
>         po = <optimized out>
> #52 0x0000000000589620 in mark_object (obj=<optimized out>) at alloc.c:7503
>         sp = 0
> #53 0x0000000000589719 in mark_maybe_pointer (p=p <at> entry=0x196922b5, symbol_only=symbol_only <at> entry=false) at alloc.c:5260
>         obj = <optimized out>
>         m = <optimized out>
> #54 0x000000000058979b in mark_memory (start=<optimized out>, end=end <at> entry=0x7fffffff7ca0) at alloc.c:5310
>         p = 0x196922b5
>         ip = <optimized out>
>         pp = 0x7fffffffc560 "\265\"i\031"
>         tem = <optimized out>

So the immediate context of the crash was that we found a word on the
stack that contained 0x196922b5; we decided it looked like a pointer,
most likely a tagged pointer to a Lisp vectorlike, and that there was an
object that it might have pointed to.  We tried marking, most likely,
the vectorlike starting at 0x196922b0, and ended up trying to mark
0xffdf6e1, which is not a valid Lisp_Object because it uses the unused
tag.

(What confuses me is that pp > end in frame #54, but we're inside a loop
which reads:

  for (pp = start; (void const *) pp < end; pp += GC_POINTER_ALIGNMENT)
    {
      void *p = *(void *const *) pp;
      mark_maybe_pointer (p, false);
      ...
    }

Debugging information in optimized builds isn't always perfectly
reliable, so it might just be that).

So we first should inspect the memory around 0x196922b0 to find out
whether it looks like a valid vector block, and whether the bad word was
in this block or in the string object marked just before.  I'd suggest
running

    x/32gx 0x196922b0

to look at the memory following the pointer, and

    x/32gx 0x19692200

to get some idea of whether it might be the middle of a vectorlike.

You could try running

    p mem_find (0x196922b5)
    p *$

to see where the vector block (if it is one) was supposed to start.
(There's a slight chance this will crash). It may be worth it to print
the entire vector block, which should be doable by running

    x/512gx $.start

after that command.

> (gdb) p last_marked_index
> $4 = 28
> (gdb) p last_marked
> $5 = {0x18e5e015, 0x3b0b4753, 0x7699356d, 0x249d0a33, 0x6dc36f23, 0x6dc36f23, 0x15554df37b68, 0x7699356d, 0x15554df3e0a8, 0x7cfa99b5,
> 0x7699356d, 0x15554ec33b75, 0x15554ec33b75, 0xceb350, 0x15554ec33b75, 0x15554df3dfe0, 0x15554ec33b75, 0x15554ec336fd, 0x249d0d13,
> 0x15554ec336fd, 0x15554df3dfe0, 0x7699356d, 
>   0x15554ec3321d, 0x7699356d, 0x196922b5, 0x406, 0x15554efc8fac, 0xffdf6e1, 0x269b51f3, 0x17baf00, 0x269b5203, 0x285dedb4, 0x7, 0x0, 0x7

That gives us some more context.  Before hitting our bad object, we
marked 0x406, then 0x15554efc8fac.  0x406 is the Lisp_Object
representation of 257 (0x0101), and that number is used extensively in
bytecode output: bytecode objects with minargs = maxargs = 1 look like
this:

#[257 "...bytecode..." [constants...] ...]

This means that 0x15554efc8fac is most likely the string containing the
bytecode; could you please run

   p *(struct Lisp_String *)0x15554efc8fa8

to see whether this is true, and whether any data is still there?

It would be interesting to know whether we were marking the string or
the bytecode object when the crash happened; please run

   p mark_stk
   p mark_stk.stack[0]
   p mark_stk.stack[1]
   p mark_stk.stack[2]

so we see how deep in the mark stack we were at the time.

Thanks!

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 30 May 2025 14:41:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 30 May 2025 10:39:47 -0400
[Message part 1 (text/plain, inline)]
Thanks, Pip! Really appreciate you putting so much effort into this. See
below for what you asked for.

George

It's a good idea to use "gcore" to generate a core file from gdb, just
> in case the session is destroyed.


Done.

Can you check whether eln files were created just before the crash?
> Over here, the relevant command would be
>
> $ ls -Strl ~/.emacs.d/eln-cache/*/*
>
> and looking at the last few lines to see whether any files have the
> creation date in the right range (after you started using eshell but
> before the crash happened).
>

Nothing in the directory (
/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8 for me) that is on
the same day of the crash. In fact, eshell isn't there at all, which
probably makes sense as I am using the built-in version, so it was already
natively-compiled.

  So we first should inspect the memory around 0x196922b0 to find out
> whether it looks like a valid vector block, and whether the bad word was
> in this block or in the string object marked just before.  I'd suggest
> running
>
>     x/32gx 0x196922b0
>
> to look at the memory following the pointer, and
>
>     x/32gx 0x19692200
>
> to get some idea of whether it might be the middle of a vectorlike.


(gdb)   x/32gx 0x196922b0
0x196922b0: 0xc00000001f000005 0x0000000000000406
0x196922c0: 0x000015554efc8fac 0x000000000ffdf6e1
0x196922d0: 0x0000000000000016 0x000015554efc8f74
0x196922e0: 0xc00000001200a000 0x00001555386f8c00
0x196922f0: 0x0000000000000000 0x0000000074e43510
0x19692300: 0x0000000000000000 0x0000000000000000
0x19692310: 0x000000000000000b 0x00000000556ee565
0x19692320: 0x000000007a4401e0 0x0000000000000000
0x19692330: 0x000000005d1f2243 0xc000000003005000
0x19692340: 0x00000000134314f0 0x0000000000000000
0x19692350: 0x000000001965e118 0x00000000000026ba
0x19692360: 0x00000000000026ba 0x8000000000000004
0x19692370: 0x0000000000000f26 0x0000000000000c4e
0x19692380: 0x0000000000000c02 0x0000000000000d16
0x19692390: 0xc000000003005000 0x000015554ef1fbb0
0x196923a0: 0x00000000012d6144 0x0000000019e14120
(gdb)  x/32gx 0x19692200
0x19692200: 0x0000000000000000 0x0000000000019082
0x19692210: 0x0000000000019102 0x000000000000004e
0x19692220: 0x0000000000000000 0x0000000000000192
0x19692230: 0x0000000000000002 0x0000000000000000
0x19692240: 0x400000002300000d 0x0000000000000000
0x19692250: 0x000000000544a480 0x00000000019e1500
0x19692260: 0x0000000000000000 0x000000000000b640
0x19692270: 0x0000000000000000 0x0000000000019082
0x19692280: 0x0000000000019102 0x000000000000004e
0x19692290: 0x0000000000000000 0x0000000000000192
0x196922a0: 0x0000000000000002 0x0000000000000000
0x196922b0: 0xc00000001f000005 0x0000000000000406
0x196922c0: 0x000015554efc8fac 0x000000000ffdf6e1
0x196922d0: 0x0000000000000016 0x000015554efc8f74
0x196922e0: 0xc00000001200a000 0x00001555386f8c00
0x196922f0: 0x0000000000000000 0x0000000074e43510


You could try running
>
>     p mem_find (0x196922b5)
>     p *$
>
> to see where the vector block (if it is one) was supposed to start.
> (There's a slight chance this will crash). It may be worth it to print
> the entire vector block, which should be doable by running
>
>     x/512gx $.start
>
> after that command.
>
>

 (gdb) p mem_find (0x196922b5)
[LWP 3311069 exited]
$7 = (struct mem_node *) 0x18f97010
(gdb) p *$
$8 = {left = 0x18f96fd0, right = 0x18f97050, parent = 0x18f96f90, start =
0x196915a0, end = 0x19692598, color = MEM_BLACK, type =
MEM_TYPE_VECTOR_BLOCK}
(gdb) x/512gx $.start
0x196915a0: 0xc000000021000081 0x0000068000000003
0x196915b0: 0x000000000000158a 0x000000000000158e
0x196915c0: 0x0000000000001592 0x0000000000001596
0x196915d0: 0x000000000000159a 0x000000000000159e
0x196915e0: 0x00000000000015a2 0x00000000000015a6
0x196915f0: 0x00000000000015aa 0x00000000000015ae
0x19691600: 0x00000000000015b2 0x00000000000015b6
0x19691610: 0x00000000000015ba 0x00000000000015be
0x19691620: 0x00000000000015c2 0x00000000000015c6
0x19691630: 0x00000000000015ca 0x00000000000015ce
0x19691640: 0x00000000000015d2 0x00000000000015d6
0x19691650: 0x00000000000015da 0x00000000000015de
0x19691660: 0x00000000000015e2 0x00000000000015e6
0x19691670: 0x00000000000015ea 0x00000000000015ee
0x19691680: 0x00000000000015f2 0x00000000000015f6
0x19691690: 0x00000000000015fa 0x00000000000015fe
0x196916a0: 0x0000000000001602 0x0000000000001606
0x196916b0: 0x000000000000160a 0x000000000000160e
0x196916c0: 0x0000000000001612 0x0000000000001616
0x196916d0: 0x000000000000161a 0x000000000000161e
0x196916e0: 0x0000000000001622 0x0000000000001626
0x196916f0: 0x000000000000162a 0x000000000000162e
0x19691700: 0x0000000000001632 0x0000000000001636
0x19691710: 0x000000000000163a 0x000000000000163e
0x19691720: 0x0000000000001642 0x0000000000001646
0x19691730: 0x000000000000164a 0x000000000000164e
0x19691740: 0x0000000000001652 0x0000000000001656
0x19691750: 0x000000000000165a 0x000000000000165e
0x19691760: 0x0000000000001662 0x0000000000001666
0x19691770: 0x000000000000166a 0x000000000000166e
0x19691780: 0x0000000000001672 0x0000000000001676
0x19691790: 0x000000000000167a 0x000000000000167e
0x196917a0: 0x0000000000001682 0x0000000000001686
0x196917b0: 0x000000000000168a 0x000000000000168e
0x196917c0: 0x0000000000001692 0x0000000000001696
0x196917d0: 0x000000000000169a 0x000000000000169e
0x196917e0: 0x00000000000016a2 0x00000000000016a6
0x196917f0: 0x00000000000016aa 0x00000000000016ae
0x19691800: 0x00000000000016b2 0x00000000000016b6
0x19691810: 0x00000000000016ba 0x00000000000016be
0x19691820: 0x00000000000016c2 0x00000000000016c6
0x19691830: 0x00000000000016ca 0x00000000000016ce
0x19691840: 0x00000000000016d2 0x00000000000016d6
0x19691850: 0x00000000000016da 0x00000000000016de
0x19691860: 0x00000000000016e2 0x00000000000016e6
0x19691870: 0x00000000000016ea 0x00000000000016ee
0x19691880: 0x00000000000016f2 0x00000000000016f6
0x19691890: 0x00000000000016fa 0x00000000000016fe
0x196918a0: 0x0000000000001702 0x0000000000001706
0x196918b0: 0x000000000000170a 0x000000000000170e
0x196918c0: 0x0000000000001712 0x0000000000001716
0x196918d0: 0x000000000000171a 0x000000000000171e
0x196918e0: 0x0000000000001722 0x0000000000001726
--Type <RET> for more, q to quit, c to continue without paging--c
0x196918f0: 0x000000000000172a 0x000000000000172e
0x19691900: 0x0000000000001732 0x0000000000001736
0x19691910: 0x000000000000173a 0x000000000000173e
0x19691920: 0x0000000000001742 0x0000000000001746
0x19691930: 0x000000000000174a 0x000000000000174e
0x19691940: 0x0000000000001752 0x0000000000001756
0x19691950: 0x000000000000175a 0x000000000000175e
0x19691960: 0x0000000000001762 0x0000000000001766
0x19691970: 0x000000000000176a 0x000000000000176e
0x19691980: 0x0000000000001772 0x0000000000001776
0x19691990: 0x000000000000177a 0x000000000000177e
0x196919a0: 0x0000000000001782 0x0000000000001786
0x196919b0: 0xc000000021000081 0x0000070000000003
0x196919c0: 0x000000000000178a 0x000000000000178e
0x196919d0: 0x0000000000001792 0x0000000000001796
0x196919e0: 0x000000000000179a 0x000000000000179e
0x196919f0: 0x00000000000017a2 0x00000000000017a6
0x19691a00: 0x00000000000017aa 0x00000000000017ae
0x19691a10: 0x00000000000017b2 0x00000000000017b6
0x19691a20: 0x00000000000017ba 0x00000000000017be
0x19691a30: 0x00000000000017c2 0x00000000000017c6
0x19691a40: 0x00000000000017ca 0x00000000000017ce
0x19691a50: 0x00000000000017d2 0x00000000000017d6
0x19691a60: 0x00000000000017da 0x00000000000017de
0x19691a70: 0x00000000000017e2 0x00000000000017e6
0x19691a80: 0x00000000000017ea 0x00000000000017ee
0x19691a90: 0x00000000000017f2 0x00000000000017f6
0x19691aa0: 0x00000000000017fa 0x00000000000017fe
0x19691ab0: 0x0000000000001802 0x0000000000001806
0x19691ac0: 0x000000000000180a 0x000000000000180e
0x19691ad0: 0x0000000000001812 0x0000000000001816
0x19691ae0: 0x000000000000181a 0x000000000000181e
0x19691af0: 0x0000000000001822 0x0000000000001826
0x19691b00: 0x000000000000182a 0x000000000000182e
0x19691b10: 0x0000000000001832 0x0000000000001836
0x19691b20: 0x000000000000183a 0x000000000000183e
0x19691b30: 0x0000000000001842 0x0000000000001846
0x19691b40: 0x000000000000184a 0x000000000000184e
0x19691b50: 0x0000000000001852 0x0000000000001856
0x19691b60: 0x000000000000185a 0x000000000000185e
0x19691b70: 0x0000000000001862 0x0000000000001866
0x19691b80: 0x000000000000186a 0x000000000000186e
0x19691b90: 0x0000000000001872 0x0000000000001876
0x19691ba0: 0x000000000000187a 0x000000000000187e
0x19691bb0: 0x0000000000001882 0x0000000000001886
0x19691bc0: 0x000000000000188a 0x000000000000188e
0x19691bd0: 0x0000000000001892 0x0000000000001896
0x19691be0: 0x000000000000189a 0x000000000000189e
0x19691bf0: 0x00000000000018a2 0x00000000000018a6
0x19691c00: 0x00000000000018aa 0x00000000000018ae
0x19691c10: 0x00000000000018b2 0x00000000000018b6
0x19691c20: 0x00000000000018ba 0x00000000000018be
0x19691c30: 0x00000000000018c2 0x00000000000018c6
0x19691c40: 0x00000000000018ca 0x00000000000018ce
0x19691c50: 0x00000000000018d2 0x00000000000018d6
0x19691c60: 0x00000000000018da 0x00000000000018de
0x19691c70: 0x00000000000018e2 0x00000000000018e6
0x19691c80: 0x00000000000018ea 0x00000000000018ee
0x19691c90: 0x00000000000018f2 0x00000000000018f6
0x19691ca0: 0x00000000000018fa 0x00000000000018fe
0x19691cb0: 0x0000000000001902 0x0000000000001906
0x19691cc0: 0x000000000000190a 0x000000000000190e
0x19691cd0: 0x0000000000001912 0x0000000000001916
0x19691ce0: 0x000000000000191a 0x000000000000191e
0x19691cf0: 0x0000000000001922 0x0000000000001926
0x19691d00: 0x000000000000192a 0x000000000000192e
0x19691d10: 0x0000000000001932 0x0000000000001936
0x19691d20: 0x000000000000193a 0x000000000000193e
0x19691d30: 0x0000000000001942 0x0000000000001946
0x19691d40: 0x000000000000194a 0x000000000000194e
0x19691d50: 0x0000000000001952 0x0000000000001956
0x19691d60: 0x000000000000195a 0x000000000000195e
0x19691d70: 0x0000000000001962 0x0000000000001966
0x19691d80: 0x000000000000196a 0x000000000000196e
0x19691d90: 0x0000000000001972 0x0000000000001976
0x19691da0: 0x000000000000197a 0x000000000000197e
0x19691db0: 0x0000000000001982 0x0000000000001986
0x19691dc0: 0xc000000021000081 0x0000078000000003
0x19691dd0: 0x000000000000198a 0x000000000000198e
0x19691de0: 0x0000000000001992 0x0000000000001996
0x19691df0: 0x000000000000199a 0x000000000000199e
0x19691e00: 0x00000000000019a2 0x00000000000019a6
0x19691e10: 0x00000000000019aa 0x00000000000019ae
0x19691e20: 0x00000000000019b2 0x00000000000019b6
0x19691e30: 0x00000000000019ba 0x00000000000019be
0x19691e40: 0x00000000000019c2 0x00000000000019c6
0x19691e50: 0x00000000000019ca 0x00000000000019ce
0x19691e60: 0x00000000000019d2 0x00000000000019d6
0x19691e70: 0x00000000000019da 0x00000000000019de
0x19691e80: 0x00000000000019e2 0x00000000000019e6
0x19691e90: 0x00000000000019ea 0x00000000000019ee
0x19691ea0: 0x00000000000019f2 0x00000000000019f6
0x19691eb0: 0x00000000000019fa 0x00000000000019fe
0x19691ec0: 0x0000000000001a02 0x0000000000001a06
0x19691ed0: 0x0000000000001a0a 0x0000000000001a0e
0x19691ee0: 0x0000000000001a12 0x0000000000001a16
0x19691ef0: 0x0000000000001a1a 0x0000000000001a1e
0x19691f00: 0x0000000000001a22 0x0000000000001a26
0x19691f10: 0x0000000000001a2a 0x0000000000001a2e
0x19691f20: 0x0000000000001a32 0x0000000000001a36
0x19691f30: 0x0000000000001a3a 0x0000000000001a3e
0x19691f40: 0x0000000000001a42 0x0000000000001a46
0x19691f50: 0x0000000000001a4a 0x0000000000001a4e
0x19691f60: 0x0000000000001a52 0x0000000000001a56
0x19691f70: 0x0000000000001a5a 0x0000000000001a5e
0x19691f80: 0x0000000000001a62 0x0000000000001a66
0x19691f90: 0x0000000000001a6a 0x0000000000001a6e
0x19691fa0: 0x0000000000001a72 0x0000000000001a76
0x19691fb0: 0x0000000000001a7a 0x0000000000001a7e
0x19691fc0: 0x0000000000001a82 0x0000000000001a86
0x19691fd0: 0x0000000000001a8a 0x0000000000001a8e
0x19691fe0: 0x0000000000001a92 0x0000000000001a96
0x19691ff0: 0x0000000000001a9a 0x0000000000001a9e
0x19692000: 0x0000000000001aa2 0x0000000000001aa6
0x19692010: 0x0000000000001aaa 0x0000000000001aae
0x19692020: 0x0000000000001ab2 0x0000000000001ab6
0x19692030: 0x0000000000001aba 0x0000000000001abe
0x19692040: 0x0000000000001ac2 0x0000000000001ac6
0x19692050: 0x0000000000001aca 0x0000000000001ace
0x19692060: 0x0000000000001ad2 0x0000000000001ad6
0x19692070: 0x0000000000001ada 0x0000000000001ade
0x19692080: 0x0000000000001ae2 0x0000000000001ae6
0x19692090: 0x0000000000001aea 0x0000000000001aee
0x196920a0: 0x0000000000001af2 0x0000000000001af6
0x196920b0: 0x0000000000001afa 0x0000000000001afe
0x196920c0: 0x0000000000001b02 0x0000000000001b06
0x196920d0: 0x0000000000001b0a 0x0000000000001b0e
0x196920e0: 0x0000000000001b12 0x0000000000001b16
0x196920f0: 0x0000000000001b1a 0x0000000000001b1e
0x19692100: 0x0000000000001b22 0x0000000000001b26
0x19692110: 0x0000000000001b2a 0x0000000000001b2e
0x19692120: 0x0000000000001b32 0x0000000000001b36
0x19692130: 0x0000000000001b3a 0x0000000000001b3e
0x19692140: 0x0000000000001b42 0x0000000000001b46
0x19692150: 0x0000000000001b4a 0x0000000000001b4e
0x19692160: 0x0000000000001b52 0x0000000000001b56
0x19692170: 0x0000000000001b5a 0x0000000000001b5e
0x19692180: 0x0000000000001b62 0x0000000000001b66
0x19692190: 0x0000000000001b6a 0x0000000000001b6e
0x196921a0: 0x0000000000001b72 0x0000000000001b76
0x196921b0: 0x0000000000001b7a 0x0000000000001b7e
0x196921c0: 0x0000000000001b82 0x0000000000001b86
0x196921d0: 0x400000002300000d 0x0000000000000000
0x196921e0: 0x000000000544a480 0x00000000019e1500
0x196921f0: 0x0000000000000000 0x000000000000b640
0x19692200: 0x0000000000000000 0x0000000000019082
0x19692210: 0x0000000000019102 0x000000000000004e
0x19692220: 0x0000000000000000 0x0000000000000192
0x19692230: 0x0000000000000002 0x0000000000000000
0x19692240: 0x400000002300000d 0x0000000000000000
0x19692250: 0x000000000544a480 0x00000000019e1500
0x19692260: 0x0000000000000000 0x000000000000b640
0x19692270: 0x0000000000000000 0x0000000000019082
0x19692280: 0x0000000000019102 0x000000000000004e
0x19692290: 0x0000000000000000 0x0000000000000192
0x196922a0: 0x0000000000000002 0x0000000000000000
0x196922b0: 0xc00000001f000005 0x0000000000000406
0x196922c0: 0x000015554efc8fac 0x000000000ffdf6e1
0x196922d0: 0x0000000000000016 0x000015554efc8f74
0x196922e0: 0xc00000001200a000 0x00001555386f8c00
0x196922f0: 0x0000000000000000 0x0000000074e43510
0x19692300: 0x0000000000000000 0x0000000000000000
0x19692310: 0x000000000000000b 0x00000000556ee565
0x19692320: 0x000000007a4401e0 0x0000000000000000
0x19692330: 0x000000005d1f2243 0xc000000003005000
0x19692340: 0x00000000134314f0 0x0000000000000000
0x19692350: 0x000000001965e118 0x00000000000026ba
0x19692360: 0x00000000000026ba 0x8000000000000004
0x19692370: 0x0000000000000f26 0x0000000000000c4e
0x19692380: 0x0000000000000c02 0x0000000000000d16
0x19692390: 0xc000000003005000 0x000015554ef1fbb0
0x196923a0: 0x00000000012d6144 0x0000000019e14120
0x196923b0: 0x0000000000000094 0x0000000000000098
0x196923c0: 0x8000000000000001 0x00000000000018ea
0x196923d0: 0xc00000001a003007 0x000000001cfbfe44
0x196923e0: 0x000000001cf21683 0x000000001969242d
0x196923f0: 0x0000000019692475 0x00000000444a49c5
0x19692400: 0x000000001cfc4b65 0x000000001969c275
0x19692410: 0x000015552436e9e0 0x0000000000000000
0x19692420: 0x000000001cfc02a0 0xc00000000e008000
0x19692430: 0x000000001cfd6320 0x000000001cfd6190
0x19692440: 0x000000001cfd5b80 0x00000000006e9960
0x19692450: 0x000000001cfd59f0 0x0000001c0000001c
0x19692460: 0x0000400700000060 0x0000000000000000
0x19692470: 0xc00000000e008000 0x000000001cfd6cd0
0x19692480: 0x000000001cfd6b40 0x000000001cfd6530
0x19692490: 0x00000000006e98e0 0x000000001cfd4bd0
0x196924a0: 0x0000001c0000001c 0x0000400700000060
0x196924b0: 0x0000000000000000 0xc00000001f000005
0x196924c0: 0x0000000000000606 0x000000001cfc0004
0x196924d0: 0x0000000005d42ca5 0x000000000000000e
0x196924e0: 0x000000001cfbffe4 0x800000000000000e
0x196924f0: 0x000015554de5d450 0x000015554de5d4a0
0x19692500: 0x000015554df89888 0x000015554df91ec8
0x19692510: 0x000015554dfd0818 0x0000000000003e10
0x19692520: 0x000015554de35288 0x000015554de35258
0x19692530: 0x0000000000000006 0x0000000000003de0
0x19692540: 0x000000001968c50d 0x00000000196924bd
0x19692550: 0x0000000000000000 0x000015554de34540
0x19692560: 0xc00000001f000004 0x0000000000000002
0x19692570: 0x000000001e807624 0x00000000028d4475
0x19692580: 0x0000000000000006 0x8000000000000001
0x19692590: 0x000015554e3190c8 0x0000000019690590

This means that 0x15554efc8fac is most likely the string containing the
> bytecode; could you please run
>
>    p *(struct Lisp_String *)0x15554efc8fa8
>
> to see whether this is true, and whether any data is still there?
>
> It would be interesting to know whether we were marking the string or
> the bytecode object when the crash happened; please run
>
>    p mark_stk
>    p mark_stk.stack[0]
>    p mark_stk.stack[1]
>    p mark_stk.stack[2]
>
> so we see how deep in the mark stack we were at the time.
>

(gdb) p *(struct Lisp_String *)0x15554efc8fa8
$9 = {u = {s = {size = 8, size_byte = -3, intervals = 0x0, data =
0x15554f6b661a "\300"...}, next = 0x8, gcaligned = 8 '\b'}}
(gdb)    p mark_stk
$10 = {stack = 0x155539361010, size = 12288, sp = 1}
(gdb)    p mark_stk.stack[0]
$11 = {n = 2, u = {value = 0x196922d0, values = 0x196922d0}}
(gdb)    p mark_stk.stack[1]
$12 = {n = 0, u = {value = 0x6851e793, values = 0x6851e793}}
(gdb)    p mark_stk.stack[2]
$13 = {n = 0, u = {value = 0x160c2d5, values = 0x160c2d5}}
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 30 May 2025 16:11:01 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 30 May 2025 16:10:03 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

> Thanks, Pip! Really appreciate you putting so much effort into this. See below for what you asked for.

>  Can you check whether eln files were created just before the crash?
>  Over here, the relevant command would be
>
>  $ ls -Strl ~/.emacs.d/eln-cache/*/*
>
>  and looking at the last few lines to see whether any files have the
>  creation date in the right range (after you started using eshell but
>  before the crash happened).
>
> Nothing in the directory ( /u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8 for me) that is on the same day of the crash. In fact, eshell isn't
> there at all, which probably makes sense as I am using the built-in version, so it was already natively-compiled.

Oh, okay.

>    So we first should inspect the memory around 0x196922b0 to find out
>  whether it looks like a valid vector block, and whether the bad word was
>  in this block or in the string object marked just before.  I'd suggest
>  running
>
>      x/32gx 0x196922b0
>
>  to look at the memory following the pointer, and
>
>      x/32gx 0x19692200
>
>  to get some idea of whether it might be the middle of a vectorlike. 
>
> (gdb)   x/32gx 0x196922b0
> 0x196922b0: 0xc00000001f000005 0x0000000000000406
> 0x196922c0: 0x000015554efc8fac 0x000000000ffdf6e1
> 0x196922d0: 0x0000000000000016 0x000015554efc8f74
> 0x196922e0: 0xc00000001200a000 0x00001555386f8c00

That looks like a perfectly ordinary bytecode closure in a vector block,
except for the mysterious word 0xffdf6e1 where the constant vector
should be.

Not only is that word not a Lisp object, it doesn't ring any bells at
all - it's just below 256 MB if it's in bytes.  I'm not sure whether
your memory layout places anything there, and even if it did it would be
a strangely unaligned address.  Just in case, can you run:

    x/32gx 0xffdf600
    p $rsp

Have you customized anything to 256 MB, precisely or approximately?
What are your values for gcmh-high-cons-threshold and
gcmh-low-cons-threshold, assuming that was in use during the crash?  Can
you also try:

    p globals.f_gc_cons_threshold
    p globals.f_string_chars_consed
    p &globals.f_gc_cons_threshold

The rest of the memory dump looks normal; the other bytecode closures in
the block are fine.  I must confess that it looks at this point like
some random C code (we know it's not Lisp, at least) wrote a single word
that doesn't ring any bells to a memory location that it may have owned
at some point but which had been freed and reused for a vector block, or
for a new vectorlike within the existing vector block.

There's a native comp unit in the block, and a lambda_gc_guard_h table.
Can you

    p (struct Lisp_String *)0x000000001cfbfe40

to find out which one it is?

Thanks, in any case, even though I'm kind of stumped right now...

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 30 May 2025 16:16:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: acorallo <at> gnu.org, georgepanagopo <at> gmail.com, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 30 May 2025 19:15:20 +0300
> Date: Fri, 30 May 2025 16:10:03 +0000
> From: Pip Cet <pipcet <at> protonmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org, Andrea Corallo <acorallo <at> gnu.org>
> 
> "George P" <georgepanagopo <at> gmail.com> writes:
> 
> > Thanks, Pip! Really appreciate you putting so much effort into this. See below for what you asked for.
> 
> >  Can you check whether eln files were created just before the crash?
> >  Over here, the relevant command would be
> >
> >  $ ls -Strl ~/.emacs.d/eln-cache/*/*
> >
> >  and looking at the last few lines to see whether any files have the
> >  creation date in the right range (after you started using eshell but
> >  before the crash happened).
> >
> > Nothing in the directory ( /u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8 for me) that is on the same day of the crash. In fact, eshell isn't
> > there at all, which probably makes sense as I am using the built-in version, so it was already natively-compiled.
> 
> Oh, okay.
> 
> >    So we first should inspect the memory around 0x196922b0 to find out
> >  whether it looks like a valid vector block, and whether the bad word was
> >  in this block or in the string object marked just before.  I'd suggest
> >  running
> >
> >      x/32gx 0x196922b0
> >
> >  to look at the memory following the pointer, and
> >
> >      x/32gx 0x19692200
> >
> >  to get some idea of whether it might be the middle of a vectorlike. 
> >
> > (gdb)   x/32gx 0x196922b0
> > 0x196922b0: 0xc00000001f000005 0x0000000000000406
> > 0x196922c0: 0x000015554efc8fac 0x000000000ffdf6e1
> > 0x196922d0: 0x0000000000000016 0x000015554efc8f74
> > 0x196922e0: 0xc00000001200a000 0x00001555386f8c00
> 
> That looks like a perfectly ordinary bytecode closure in a vector block,
> except for the mysterious word 0xffdf6e1 where the constant vector
> should be.
> 
> Not only is that word not a Lisp object, it doesn't ring any bells at
> all - it's just below 256 MB if it's in bytes.  I'm not sure whether
> your memory layout places anything there, and even if it did it would be
> a strangely unaligned address.  Just in case, can you run:
> 
>     x/32gx 0xffdf600
>     p $rsp
> 
> Have you customized anything to 256 MB, precisely or approximately?
> What are your values for gcmh-high-cons-threshold and
> gcmh-low-cons-threshold, assuming that was in use during the crash?  Can
> you also try:
> 
>     p globals.f_gc_cons_threshold
>     p globals.f_string_chars_consed
>     p &globals.f_gc_cons_threshold
> 
> The rest of the memory dump looks normal; the other bytecode closures in
> the block are fine.  I must confess that it looks at this point like
> some random C code (we know it's not Lisp, at least) wrote a single word
> that doesn't ring any bells to a memory location that it may have owned
> at some point but which had been freed and reused for a vector block, or
> for a new vectorlike within the existing vector block.
> 
> There's a native comp unit in the block, and a lambda_gc_guard_h table.
> Can you
> 
>     p (struct Lisp_String *)0x000000001cfbfe40
> 
> to find out which one it is?
> 
> Thanks, in any case, even though I'm kind of stumped right now...

Can this be due to a GCC optimization bug, whereby it truncates 64-bit
values to 32 bits?  Maybe George should try -fno-tree-sra?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Fri, 30 May 2025 17:34:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Pip Cet <pipcet <at> protonmail.com>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Fri, 30 May 2025 13:33:24 -0400
[Message part 1 (text/plain, inline)]
> Have you customized anything to 256 MB, precisely or approximately?
> What are your values for gcmh-high-cons-threshold and
> gcmh-low-cons-threshold, assuming that was in use during the crash?
>

Not that I could find, unfortunately. My gcmh-low-cons-threshold is at
800000 and gcmh-high-cons-threshold is at 134217728.

Here is the gdb stuff:

(gdb) x/32gx 0xffdf600
0xffdf600: 0x0000000000000000 0x000000000000b640
0xffdf610: 0x0000000000000000 0x0000000000019082
0xffdf620: 0x0000000000019102 0x000000000000004e
0xffdf630: 0x0000000000000000 0x0000000000000192
0xffdf640: 0x0000000000000002 0x0000000000000000
0xffdf650: 0x400000002300000d 0x0000000000000000
0xffdf660: 0x000000000544a480 0x00000000019e1500
0xffdf670: 0x0000000000000000 0x000000000000b640
0xffdf680: 0x0000000000000000 0x0000000000019082
0xffdf690: 0x0000000000019102 0x000000000000004e
0xffdf6a0: 0x0000000000000000 0x0000000000000192
0xffdf6b0: 0x0000000000000002 0x0000000000000000
0xffdf6c0: 0xc000000004002001 0x000000003b67f833
0xffdf6d0: 0x0000000024f854e0 0x000000001cff54f0
0xffdf6e0: 0x0000000000000002 0x00000000249d0eb3
0xffdf6f0: 0x0000000018e40e25 0x000000003a8fa9c0
(gdb) p $rsp
$15 = (void *) 0x7fffffff5b10
(gdb) p globals.f_gc_cons_threshold
$16 = 800000
(gdb)     p globals.f_string_chars_consed
$17 = 144457277695
(gdb)     p &globals.f_gc_cons_threshold
$18 = (intmax_t *) 0xcf4278 <globals+4056>
(gdb) p (struct Lisp_String *)0x000000001cfbfe40
$19 = (struct Lisp_String *) 0x1cfbfe40
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 31 May 2025 06:38:07 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Andrea Corallo <acorallo <at> gnu.org>,
 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 31 May 2025 06:37:17 +0000
Pip Cet <pipcet <at> protonmail.com> writes:

> "George P" <georgepanagopo <at> gmail.com> writes:

>> (gdb)  p *(char **)0x8f68108
>> $1 = 0x2018b608 "/nix/store/xdxaa55akicvs3jjrr8d7nmzla4gzbyl-emacs-30.1/lib/emacs/30.1/native-lisp/30.1-1ed0c1e8/cl-print-79bf9fb1-14d0e7d5.eln"
>> (gdb) x/32gx 0x9e7980
>
> Oops, I messed up there.  I meant x/32gx 0x98e7980, though it's no
> longer necessary (we know it's a native compilation unit because it
> appears in the right slot in the subr below).

Now we have the other bug, though, it would be interesting again.  Maybe
the same thing happened to a nativecomp constant vector here as happened
to a bytecode closure's constant vector in the new crash.  Do you still
have the old core file, and can you run x/32gx 0x98e7980?

Thanks
Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 31 May 2025 08:19:02 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 31 May 2025 08:18:38 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

>  Have you customized anything to 256 MB, precisely or approximately?
>  What are your values for gcmh-high-cons-threshold and
>  gcmh-low-cons-threshold, assuming that was in use during the crash?
>
> Not that I could find, unfortunately. My gcmh-low-cons-threshold is at 800000 and gcmh-high-cons-threshold is at 134217728.

Thanks for checking!

> (gdb) p (struct Lisp_String *)0x000000001cfbfe40
> $19 = (struct Lisp_String *) 0x1cfbfe40

Oh, sorry, "p *(struct Lisp_String *)0x000000001cfbfe40".  I'm surprised
0xffdf6e1 is a valid pointer, and 0xffdf6e5 would be a Lisp_Object
pointing to a two-element vector, which might be the lost constants
vector.  So maybe someone flipped a bit, or incorrectly treated the
object as a fixnum and silently decremented it?

Eli's idea of adding -fno-tree-sra to the build options for the next
build is a good one.

Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sat, 31 May 2025 15:34:04 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sat, 31 May 2025 11:33:09 -0400
[Message part 1 (text/plain, inline)]
>
> Eli's idea of adding -fno-tree-sra to the build options for the next
> build is a good one.


Yes, thanks to both for the suggestion! I will make a build with this
option and see if the bug persists.

Could it also be a dynamic module responsible? I am running at least a few
of these (tree-sitter https://github.com/emacs-tree-sitter/elisp-tree-sitter,
vterm https://github.com/akermu/emacs-libvterm and pdf-tools
https://github.com/vedang/pdf-tools, maybe a few more).

Here are the gdb things:


> Now we have the other bug, though, it would be interesting again.  Maybe
> the same thing happened to a nativecomp constant vector here as happened
> to a bytecode closure's constant vector in the new crash.  Do you still
> have the old core file, and can you run x/32gx 0x98e7980?
>

Yes, here it is:

(gdb) x/32gx 0x98e7980
0x98e7980:      0xc00000001a003007      0x0000000008f680f4
0x98e7990:      0x000000001f647ac3      0x00000000098e79dd
0x98e79a0:      0x00000000098e7a25      0x0000000000000000
0x98e79b0:      0x00000000098e7d75      0x00000000098ee6cd
0x98e79c0:      0x00001555338a2ec0      0x0000000000000000
0x98e79d0:      0x000000001cbc0740      0xc00000000e008000
0x98e79e0:      0x0000000020e10970      0x0000000003aa20d0
0x98e79f0:      0x0000000003aa1ac0      0x00000000006e9960
0x98e7a00:      0x000000002265f480      0x0000001a0000001a
0x98e7a10:      0x0000400700000060      0x0000000000000000
0x98e7a20:      0x400000000e008000      0x000000001bfdbe90
0x98e7a30:      0x0000000020e10b80      0x000000001bfdb880
0x98e7a40:      0x00000000006e98e0      0x000000001fd792e0
0x98e7a50:      0x0000001a0000001a      0x0000400700000060
0x98e7a60:      0x0000000000000000      0x400000001f000005
0x98e7a70:      0x0000000000000606      0x0000000008ae5654

Oh, sorry, "p *(struct Lisp_String *)0x000000001cfbfe40".
>

(gdb) p *(struct Lisp_String *)0x000000001cfbfe40
$20 = {u = {s = {size = -9223372036854775719, size_byte = -1, intervals =
0x0, data = 0x18c4d720
"/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/lsp-erlang-9f1a9a34-b13245d7.eln"},
next = 0x8000000000000059,
    gcaligned = 89 'Y'}}
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 15 Jun 2025 12:24:03 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 15 Jun 2025 08:22:54 -0400
[Message part 1 (text/plain, inline)]
Hi!

I got another emacs crash, this time I was using 30.1 with both Pip's patch
and the gcc flag -fno-tree-sra during compilation, although the crash is
probably unrelated, as it is in redisplay instead of GC. The crash also
coincided with my Windows computer (remember I am using Cygwin/X to ssh to
a linux machine to open up an emacsclient) being forcefully restarted with
a frame open. Unfortunately, I have no way of knowing with certainty that
the crash happened during my Windows restart, as both took place overnight.

I have included the backtrace below, it seems that displayed_buffer is not
a valid address.

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x000000000047df16 in redisplay_window_1 (window=window <at> entry=0x1d17b245)
    at xdisp.c:18029
warning: 18029 xdisp.c: No such file or directory
(gdb) bt full
#0  0x000000000047df16 in redisplay_window_1 (window=window <at> entry=0x1d17b245)
at xdisp.c:18029
No locals.
#1  0x00000000005a7ea9 in internal_condition_case_1 (bfun=bfun <at> entry=0x47df0f
<redisplay_window_1>, arg=0x1d17b245, handlers=<optimized out>,
hfun=hfun <at> entry=0x43ee0b <redisplay_window_error>) at eval.c:1637
        val = <optimized out>
        c = 0xe0fda0
#2  0x000000000046cfe8 in redisplay_internal () at xdisp.c:17526
        mini_window = <optimized out>
        mini_window = <optimized out>
        mini_frame = <optimized out>
        w = 0x257ca838
        sw = <optimized out>
        fr = <optimized out>
        pending = false
        must_finish = <optimized out>
        match_p = <optimized out>
        tlbufpos = {charpos = 8573, bytepos = 330795424}
        tlendpos = <optimized out>
        number_of_visible_frames = 4
        sf = 0x191ebd60
        polling_stopped_here = <optimized out>
        tail = <optimized out>
        frame = <optimized out>
        MAX_HSCROLL_RETRIES = MAX_HSCROLL_RETRIES
        hscroll_retries = <optimized out>
        MAX_GARBAGED_FRAME_RETRIES = MAX_GARBAGED_FRAME_RETRIES
        garbaged_frame_retries = <optimized out>
        consider_all_windows_p = <optimized out>
        update_miniwindow_p = <optimized out>
        count = <optimized out>
        retry_frame = <optimized out>
#3  0x000000000046d411 in redisplay_preserve_echo_area
(from_where=from_where <at> entry=8) at xdisp.c:17749
        count = <optimized out>
#4  0x000000000053610a in detect_input_pending_run_timers
(do_display=do_display <at> entry=true) at keyboard.c:11576
        old_timers_run = 7077069
#5  0x00000000005f8c73 in wait_reading_process_output
(time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0,
read_kbd=read_kbd <at> entry=-1,
do_display=do_display <at> entry=true, wait_for_cell=wait_for_cell <at> entry=0x0,
wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at process.c:5844
        leave = false
        process_skipped = false
        wrapped = <optimized out>
        channel_start = <optimized out>
        child_fd = <optimized out>
        last_read_channel = 57
        channel = <optimized out>
        nfds = 0
        Available = {fds_bits = {7157535148594949416, 13839864582178052,
9007199254740992, 0 <repeats 13 times>}}
        Writeok = {fds_bits = {0 <repeats 16 times>}}
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = false
        xerrno = 11
        proc = <optimized out>
        timeout = {tv_sec = 0, tv_nsec = 6772189}
        end_time = <optimized out>
        timer_delay = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
        got_output_end_time = <optimized out>
        MINIMUM = MINIMUM
        TIMEOUT = TIMEOUT
        FOREVER = FOREVER
        wait = FOREVER
        got_some_output = -1
        prev_wait_proc_nbytes_read = 0
        retry_for_async = <optimized out>
        count = <optimized out>
        now = <optimized out>
#6  0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffdb08,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb,
end_time=end_time <at> entry=0x0) at keyboard.c:4094
        do_display = true
        obj = <optimized out>
        str = <optimized out>
        had_pending_selection_requests = false
        had_pending_conversion_events = false
#7  0x00000000005370d4 in read_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb) at keyboard.c:2330
        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 = 0x6df4b30
        count = <optimized out>
#8  0x000000000053724a in read_decoded_event_from_main_queue
(end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30,
prev_event=prev_event <at> entry=0x0,
used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb)
at keyboard.c:2393
        nextevt = <optimized out>
        frame = <optimized out>
        terminal = <optimized out>
        events = {0x0, 0xffffffffffffffff, 0x0, 0x330b335, 0x0, 0x684dda38,
0x2f4ee1e9, 0x0, 0x684dda38, 0x307e0271, 0x3c, 0x0, 0x11fd0, 0x330b335,
0xc8ef563, 0xf4bec416f5a4e600}
        n = 0
#9  0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x1645e493,
prev_event=0x0, used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb,
end_time=end_time <at> entry=0x0) at keyboard.c:3015
        c = 0x0
        local_getcjmp = {{__jmpbuf = {0, 6459013156217622215, 0,
140737488346880, 0, 13113857, -6459042925873656121, 6459043636991954631},
__mask_was_saved = 0, __saved_mask = {__val = {2, 0, 5991556, 67072736,
111988528, 109922016, 5863938, 0, 67072736, 98399184, 5864240, 109922032,
5510427, 0, 4625762720, 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 = 0x6df4b30
        jmpcount = <optimized out>
#10 0x0000000000539789 in read_key_sequence
(keybuf=keybuf <at> entry=0x7fffffffe1e0,
prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry=false,
can_return_switch_frame=can_return_switch_frame <at> entry=true,
fix_current_buffer=fix_current_buffer <at> entry=true,
prevent_redisplay=prevent_redisplay <at> entry=false,
    disable_text_conversion_p=false) at keyboard.c:10743
        interrupted_kboard = 0x6df4b30
        interrupted_frame = 0x191ebd60
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = <optimized out>
        count = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 0x1645e493
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = 0x189f853, map = 0x189f853, start = 0, end = 0}
        keytran = {parent = 0x15554f4f941b, map = 0x15554f4f941b, start =
0, end = 0}
        indec = {parent = 0x189f863, map = 0x189f863, start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = 0x0
        original_uppercase = 0x0
        original_uppercase_position = -1
        disabled_conversion = false
        starting_buffer = 0x13b789a0
        fake_prefixed_keys = 0x0
        first_event = 0x0
        second_event = <optimized out>
#11 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
        cmd = <optimized out>
        keybuf = {0x11ac0, 0x15f855d3, 0x133e0, 0x5982d3
<set_default_internal+530>, 0x7fffffffe260, 0x2, 0x30, 0x1785bba5, 0x0,
0x5a770f <do_one_unbind+319>, 0x1804610, 0x60, 0x0, 0x0, 0x0, 0x5a8d59
<unbind_to+105>, 0xb, 0x111c0, 0x30, 0x1785bba5, 0x7bc0,
0xf4bec416f5a4e600, 0xcf32a0 <globals>, 0x1566b533, 0x60,
          0x52f4c6 <cmd_error+363>, 0x0, 0xf4bec416f5a4e600, 0x60,
0x15554edf4d83}
        i = <optimized out>
        last_pt = <optimized out>
        prev_modiff = 396499
        prev_buffer = 0x13b789a0
#12 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce
<command_loop_1>, handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b
<cmd_error>) at eval.c:1613
        val = <optimized out>
        c = 0xe0fc60
#13 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90) at
keyboard.c:1168
        val = <optimized out>
#14 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0,
func=func <at> entry=0x529294 <command_loop_2>, arg=arg <at> entry=0x90) at
eval.c:1292
        val = <optimized out>
        c = 0xea0f40
#15 0x000000000052926b in command_loop () at keyboard.c:1146
No locals.
#16 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
        count = <optimized out>
        val = <optimized out>
#17 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
        count = <optimized out>
        buffer = <optimized out>
#18 0x0000000000528660 in main (argc=<optimized out>, argv=0x7fffffffe5a8)
at emacs.c:2635
        stack_bottom_variable = 0x155553f84458 <_gnutls_lib_state>
        old_argc = <optimized out>
        dump_file = 0x0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {rlim_cur = 18446744073709551615, rlim_max =
18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>
(gdb) p displayed_buffer
$1 = (struct buffer *) 0xfffffffffffffffb


On Sat, May 31, 2025 at 11:33 AM George P <georgepanagopo <at> gmail.com> wrote:

> Eli's idea of adding -fno-tree-sra to the build options for the next
>> build is a good one.
>
>
> Yes, thanks to both for the suggestion! I will make a build with this
> option and see if the bug persists.
>
> Could it also be a dynamic module responsible? I am running at least a few
> of these (tree-sitter
> https://github.com/emacs-tree-sitter/elisp-tree-sitter, vterm
> https://github.com/akermu/emacs-libvterm and pdf-tools
> https://github.com/vedang/pdf-tools, maybe a few more).
>
> Here are the gdb things:
>
>
>> Now we have the other bug, though, it would be interesting again.  Maybe
>> the same thing happened to a nativecomp constant vector here as happened
>> to a bytecode closure's constant vector in the new crash.  Do you still
>> have the old core file, and can you run x/32gx 0x98e7980?
>>
>
> Yes, here it is:
>
> (gdb) x/32gx 0x98e7980
> 0x98e7980:      0xc00000001a003007      0x0000000008f680f4
> 0x98e7990:      0x000000001f647ac3      0x00000000098e79dd
> 0x98e79a0:      0x00000000098e7a25      0x0000000000000000
> 0x98e79b0:      0x00000000098e7d75      0x00000000098ee6cd
> 0x98e79c0:      0x00001555338a2ec0      0x0000000000000000
> 0x98e79d0:      0x000000001cbc0740      0xc00000000e008000
> 0x98e79e0:      0x0000000020e10970      0x0000000003aa20d0
> 0x98e79f0:      0x0000000003aa1ac0      0x00000000006e9960
> 0x98e7a00:      0x000000002265f480      0x0000001a0000001a
> 0x98e7a10:      0x0000400700000060      0x0000000000000000
> 0x98e7a20:      0x400000000e008000      0x000000001bfdbe90
> 0x98e7a30:      0x0000000020e10b80      0x000000001bfdb880
> 0x98e7a40:      0x00000000006e98e0      0x000000001fd792e0
> 0x98e7a50:      0x0000001a0000001a      0x0000400700000060
> 0x98e7a60:      0x0000000000000000      0x400000001f000005
> 0x98e7a70:      0x0000000000000606      0x0000000008ae5654
>
> Oh, sorry, "p *(struct Lisp_String *)0x000000001cfbfe40".
>>
>
> (gdb) p *(struct Lisp_String *)0x000000001cfbfe40
> $20 = {u = {s = {size = -9223372036854775719, size_byte = -1, intervals =
> 0x0, data = 0x18c4d720
> "/u/panagopo/.config/emacs/.local/cache/eln/30.1-1ed0c1e8/lsp-erlang-9f1a9a34-b13245d7.eln"},
> next = 0x8000000000000059,
>     gcaligned = 89 'Y'}}
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 15 Jun 2025 13:09:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: George P <georgepanagopo <at> gmail.com>
Cc: pipcet <at> protonmail.com, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 15 Jun 2025 16:07:57 +0300
> From: George P <georgepanagopo <at> gmail.com>
> Date: Sun, 15 Jun 2025 08:22:54 -0400
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org, acorallo <at> gnu.org
> 
> I got another emacs crash, this time I was using 30.1 with both Pip's patch and the gcc flag -fno-tree-sra
> during compilation, although the crash is probably unrelated, as it is in redisplay instead of GC. The crash
> also coincided with my Windows computer (remember I am using Cygwin/X to ssh to a linux machine to open
> up an emacsclient) being forcefully restarted with a frame open. Unfortunately, I have no way of knowing with
> certainty that the crash happened during my Windows restart, as both took place overnight.
> 
> I have included the backtrace below, it seems that displayed_buffer is not a valid address.
> 
> Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> 0x000000000047df16 in redisplay_window_1 (window=window <at> entry=0x1d17b245)
>     at xdisp.c:18029
> warning: 18029 xdisp.c: No such file or directory
> (gdb) bt full
> #0  0x000000000047df16 in redisplay_window_1 (window=window <at> entry=0x1d17b245) at xdisp.c:18029
> No locals.
> #1  0x00000000005a7ea9 in internal_condition_case_1 (bfun=bfun <at> entry=0x47df0f
> <redisplay_window_1>, arg=0x1d17b245, handlers=<optimized out>, hfun=hfun <at> entry=0x43ee0b
> <redisplay_window_error>) at eval.c:1637
>         val = <optimized out>
>         c = 0xe0fda0
> #2  0x000000000046cfe8 in redisplay_internal () at xdisp.c:17526
>         mini_window = <optimized out>
>         mini_window = <optimized out>
>         mini_frame = <optimized out>
>         w = 0x257ca838
>         sw = <optimized out>
>         fr = <optimized out>
>         pending = false
>         must_finish = <optimized out>
>         match_p = <optimized out>
>         tlbufpos = {charpos = 8573, bytepos = 330795424}
>         tlendpos = <optimized out>
>         number_of_visible_frames = 4
>         sf = 0x191ebd60
>         polling_stopped_here = <optimized out>
>         tail = <optimized out>
>         frame = <optimized out>
>         MAX_HSCROLL_RETRIES = MAX_HSCROLL_RETRIES
>         hscroll_retries = <optimized out>
>         MAX_GARBAGED_FRAME_RETRIES = MAX_GARBAGED_FRAME_RETRIES
>         garbaged_frame_retries = <optimized out>
>         consider_all_windows_p = <optimized out>
>         update_miniwindow_p = <optimized out>
>         count = <optimized out>
>         retry_frame = <optimized out>
> #3  0x000000000046d411 in redisplay_preserve_echo_area (from_where=from_where <at> entry=8) at
> xdisp.c:17749
>         count = <optimized out>
> #4  0x000000000053610a in detect_input_pending_run_timers (do_display=do_display <at> entry=true) at
> keyboard.c:11576
>         old_timers_run = 7077069
> #5  0x00000000005f8c73 in wait_reading_process_output (time_limit=time_limit <at> entry=0,
> nsecs=nsecs <at> entry=0, read_kbd=read_kbd <at> entry=-1, do_display=do_display <at> entry=true,
> wait_for_cell=wait_for_cell <at> entry=0x0, wait_proc=wait_proc <at> entry=0x0, just_wait_proc=0) at
> process.c:5844
>         leave = false
>         process_skipped = false
>         wrapped = <optimized out>
>         channel_start = <optimized out>
>         child_fd = <optimized out>
>         last_read_channel = 57
>         channel = <optimized out>
>         nfds = 0
>         Available = {fds_bits = {7157535148594949416, 13839864582178052, 9007199254740992, 0
> <repeats 13 times>}}
>         Writeok = {fds_bits = {0 <repeats 16 times>}}
>         check_write = <optimized out>
>         check_delay = <optimized out>
>         no_avail = false
>         xerrno = 11
>         proc = <optimized out>
>         timeout = {tv_sec = 0, tv_nsec = 6772189}
>         end_time = <optimized out>
>         timer_delay = <optimized out>
> --Type <RET> for more, q to quit, c to continue without paging--c
>         got_output_end_time = <optimized out>
>         MINIMUM = MINIMUM
>         TIMEOUT = TIMEOUT
>         FOREVER = FOREVER
>         wait = FOREVER
>         got_some_output = -1
>         prev_wait_proc_nbytes_read = 0
>         retry_for_async = <optimized out>
>         count = <optimized out>
>         now = <optimized out>
> #6  0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry=0x7fffffffdb08,
> used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb, end_time=end_time <at> entry=0x0) at
> keyboard.c:4094
>         do_display = true
>         obj = <optimized out>
>         str = <optimized out>
>         had_pending_selection_requests = false
>         had_pending_conversion_events = false
> #7  0x00000000005370d4 in read_event_from_main_queue (end_time=end_time <at> entry=0x0,
> local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30,
> used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb) at keyboard.c:2330
>         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 = 0x6df4b30
>         count = <optimized out>
> #8  0x000000000053724a in read_decoded_event_from_main_queue (end_time=end_time <at> entry=0x0,
> local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30, prev_event=prev_event <at> entry=0x0,
> used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb) at keyboard.c:2393
>         nextevt = <optimized out>
>         frame = <optimized out>
>         terminal = <optimized out>
>         events = {0x0, 0xffffffffffffffff, 0x0, 0x330b335, 0x0, 0x684dda38, 0x2f4ee1e9, 0x0, 0x684dda38,
> 0x307e0271, 0x3c, 0x0, 0x11fd0, 0x330b335, 0xc8ef563, 0xf4bec416f5a4e600}
>         n = 0
> #9  0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x1645e493, prev_event=0x0,
> used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb, end_time=end_time <at> entry=0x0) at
> keyboard.c:3015
>         c = 0x0
>         local_getcjmp = {{__jmpbuf = {0, 6459013156217622215, 0, 140737488346880, 0, 13113857, -
> 6459042925873656121, 6459043636991954631}, __mask_was_saved = 0, __saved_mask = {__val = {2,
> 0, 5991556, 67072736, 111988528, 109922016, 5863938, 0, 67072736, 98399184, 5864240, 109922032,
> 5510427, 0, 4625762720, 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 = 0x6df4b30
>         jmpcount = <optimized out>
> #10 0x0000000000539789 in read_key_sequence (keybuf=keybuf <at> entry=0x7fffffffe1e0,
> prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry=false,
> can_return_switch_frame=can_return_switch_frame <at> entry=true,
> fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false, 
>     disable_text_conversion_p=false) at keyboard.c:10743
>         interrupted_kboard = 0x6df4b30
>         interrupted_frame = 0x191ebd60
>         key = <optimized out>
>         used_mouse_menu = false
>         echo_local_start = 0
>         last_real_key_start = 0
>         keys_local_start = 0
>         new_binding = <optimized out>
>         count = <optimized out>
>         t = 0
>         echo_start = 0
>         keys_start = 0
>         current_binding = 0x1645e493
>         first_unbound = 31
>         mock_input = 0
>         used_mouse_menu_history = {false <repeats 30 times>}
>         fkey = {parent = 0x189f853, map = 0x189f853, start = 0, end = 0}
>         keytran = {parent = 0x15554f4f941b, map = 0x15554f4f941b, start = 0, end = 0}
>         indec = {parent = 0x189f863, map = 0x189f863, start = 0, end = 0}
>         shift_translated = false
>         delayed_switch_frame = 0x0
>         original_uppercase = 0x0
>         original_uppercase_position = -1
>         disabled_conversion = false
>         starting_buffer = 0x13b789a0
>         fake_prefixed_keys = 0x0
>         first_event = 0x0
>         second_event = <optimized out>
> #11 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
>         cmd = <optimized out>
>         keybuf = {0x11ac0, 0x15f855d3, 0x133e0, 0x5982d3 <set_default_internal+530>, 0x7fffffffe260, 0x2,
> 0x30, 0x1785bba5, 0x0, 0x5a770f <do_one_unbind+319>, 0x1804610, 0x60, 0x0, 0x0, 0x0, 0x5a8d59
> <unbind_to+105>, 0xb, 0x111c0, 0x30, 0x1785bba5, 0x7bc0, 0xf4bec416f5a4e600, 0xcf32a0 <globals>,
> 0x1566b533, 0x60, 
>           0x52f4c6 <cmd_error+363>, 0x0, 0xf4bec416f5a4e600, 0x60, 0x15554edf4d83}
>         i = <optimized out>
>         last_pt = <optimized out>
>         prev_modiff = 396499
>         prev_buffer = 0x13b789a0
> #12 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce <command_loop_1>,
> handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b <cmd_error>) at eval.c:1613
>         val = <optimized out>
>         c = 0xe0fc60
> #13 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1168
>         val = <optimized out>
> #14 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0, func=func <at> entry=0x529294
> <command_loop_2>, arg=arg <at> entry=0x90) at eval.c:1292
>         val = <optimized out>
>         c = 0xea0f40
> #15 0x000000000052926b in command_loop () at keyboard.c:1146
> No locals.
> #16 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
>         count = <optimized out>
>         val = <optimized out>
> #17 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
>         count = <optimized out>
>         buffer = <optimized out>
> #18 0x0000000000528660 in main (argc=<optimized out>, argv=0x7fffffffe5a8) at emacs.c:2635
>         stack_bottom_variable = 0x155553f84458 <_gnutls_lib_state>
>         old_argc = <optimized out>
>         dump_file = 0x0
>         no_loadup = false
>         junk = 0x0
>         dname_arg = 0x0
>         ch_to_dir = 0x0
>         original_pwd = 0x0
>         dump_mode = <optimized out>
>         skip_args = 1
>         temacs = 0x0
>         attempt_load_pdump = <optimized out>
>         only_version = false
>         rlim = {rlim_cur = 18446744073709551615, rlim_max = 18446744073709551615}
>         lc_all = <optimized out>
>         sockfd = -1
>         module_assertions = <optimized out>
> (gdb) p displayed_buffer
> $1 = (struct buffer *) 0xfffffffffffffffb

This value is garbled, I guess?  What does this show:

  (gdb) p *displayed_buffer

If it says "cannot access", I have no idea how this garbage could have
ended up there.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 15 Jun 2025 13:13:04 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: pipcet <at> protonmail.com, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 15 Jun 2025 09:12:08 -0400
[Message part 1 (text/plain, inline)]
Yes, that is precisely what it says....

(gdb) p displayed_buffer
$1 = (struct buffer *) 0xfffffffffffffffb
(gdb) p *displayed_buffer
Cannot access memory at address 0xfffffffffffffffb


On Sun, Jun 15, 2025, 09:08 Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: George P <georgepanagopo <at> gmail.com>
> > Date: Sun, 15 Jun 2025 08:22:54 -0400
> > Cc: Eli Zaretskii <eliz <at> gnu.org>, 78444 <at> debbugs.gnu.org,
> acorallo <at> gnu.org
> >
> > I got another emacs crash, this time I was using 30.1 with both Pip's
> patch and the gcc flag -fno-tree-sra
> > during compilation, although the crash is probably unrelated, as it is
> in redisplay instead of GC. The crash
> > also coincided with my Windows computer (remember I am using Cygwin/X to
> ssh to a linux machine to open
> > up an emacsclient) being forcefully restarted with a frame open.
> Unfortunately, I have no way of knowing with
> > certainty that the crash happened during my Windows restart, as both
> took place overnight.
> >
> > I have included the backtrace below, it seems that displayed_buffer is
> not a valid address.
> >
> > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> > 0x000000000047df16 in redisplay_window_1 (window=window <at> entry
> =0x1d17b245)
> >     at xdisp.c:18029
> > warning: 18029 xdisp.c: No such file or directory
> > (gdb) bt full
> > #0  0x000000000047df16 in redisplay_window_1 (window=window <at> entry=0x1d17b245)
> at xdisp.c:18029
> > No locals.
> > #1  0x00000000005a7ea9 in internal_condition_case_1 (bfun=bfun <at> entry
> =0x47df0f
> > <redisplay_window_1>, arg=0x1d17b245, handlers=<optimized out>,
> hfun=hfun <at> entry=0x43ee0b
> > <redisplay_window_error>) at eval.c:1637
> >         val = <optimized out>
> >         c = 0xe0fda0
> > #2  0x000000000046cfe8 in redisplay_internal () at xdisp.c:17526
> >         mini_window = <optimized out>
> >         mini_window = <optimized out>
> >         mini_frame = <optimized out>
> >         w = 0x257ca838
> >         sw = <optimized out>
> >         fr = <optimized out>
> >         pending = false
> >         must_finish = <optimized out>
> >         match_p = <optimized out>
> >         tlbufpos = {charpos = 8573, bytepos = 330795424}
> >         tlendpos = <optimized out>
> >         number_of_visible_frames = 4
> >         sf = 0x191ebd60
> >         polling_stopped_here = <optimized out>
> >         tail = <optimized out>
> >         frame = <optimized out>
> >         MAX_HSCROLL_RETRIES = MAX_HSCROLL_RETRIES
> >         hscroll_retries = <optimized out>
> >         MAX_GARBAGED_FRAME_RETRIES = MAX_GARBAGED_FRAME_RETRIES
> >         garbaged_frame_retries = <optimized out>
> >         consider_all_windows_p = <optimized out>
> >         update_miniwindow_p = <optimized out>
> >         count = <optimized out>
> >         retry_frame = <optimized out>
> > #3  0x000000000046d411 in redisplay_preserve_echo_area
> (from_where=from_where <at> entry=8) at
> > xdisp.c:17749
> >         count = <optimized out>
> > #4  0x000000000053610a in detect_input_pending_run_timers
> (do_display=do_display <at> entry=true) at
> > keyboard.c:11576
> >         old_timers_run = 7077069
> > #5  0x00000000005f8c73 in wait_reading_process_output
> (time_limit=time_limit <at> entry=0,
> > nsecs=nsecs <at> entry=0, read_kbd=read_kbd <at> entry=-1,
> do_display=do_display <at> entry=true,
> > wait_for_cell=wait_for_cell <at> entry=0x0, wait_proc=wait_proc <at> entry=0x0,
> just_wait_proc=0) at
> > process.c:5844
> >         leave = false
> >         process_skipped = false
> >         wrapped = <optimized out>
> >         channel_start = <optimized out>
> >         child_fd = <optimized out>
> >         last_read_channel = 57
> >         channel = <optimized out>
> >         nfds = 0
> >         Available = {fds_bits = {7157535148594949416, 13839864582178052,
> 9007199254740992, 0
> > <repeats 13 times>}}
> >         Writeok = {fds_bits = {0 <repeats 16 times>}}
> >         check_write = <optimized out>
> >         check_delay = <optimized out>
> >         no_avail = false
> >         xerrno = 11
> >         proc = <optimized out>
> >         timeout = {tv_sec = 0, tv_nsec = 6772189}
> >         end_time = <optimized out>
> >         timer_delay = <optimized out>
> > --Type <RET> for more, q to quit, c to continue without paging--c
> >         got_output_end_time = <optimized out>
> >         MINIMUM = MINIMUM
> >         TIMEOUT = TIMEOUT
> >         FOREVER = FOREVER
> >         wait = FOREVER
> >         got_some_output = -1
> >         prev_wait_proc_nbytes_read = 0
> >         retry_for_async = <optimized out>
> >         count = <optimized out>
> >         now = <optimized out>
> > #6  0x00000000005366d9 in kbd_buffer_get_event (kbp=kbp <at> entry
> =0x7fffffffdb08,
> > used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb,
> end_time=end_time <at> entry=0x0) at
> > keyboard.c:4094
> >         do_display = true
> >         obj = <optimized out>
> >         str = <optimized out>
> >         had_pending_selection_requests = false
> >         had_pending_conversion_events = false
> > #7  0x00000000005370d4 in read_event_from_main_queue
> (end_time=end_time <at> entry=0x0,
> > local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30,
> > used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb) at keyboard.c:2330
> >         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 = 0x6df4b30
> >         count = <optimized out>
> > #8  0x000000000053724a in read_decoded_event_from_main_queue
> (end_time=end_time <at> entry=0x0,
> > local_getcjmp=local_getcjmp <at> entry=0x7fffffffde30,
> prev_event=prev_event <at> entry=0x0,
> > used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb) at keyboard.c:2393
> >         nextevt = <optimized out>
> >         frame = <optimized out>
> >         terminal = <optimized out>
> >         events = {0x0, 0xffffffffffffffff, 0x0, 0x330b335, 0x0,
> 0x684dda38, 0x2f4ee1e9, 0x0, 0x684dda38,
> > 0x307e0271, 0x3c, 0x0, 0x11fd0, 0x330b335, 0xc8ef563, 0xf4bec416f5a4e600}
> >         n = 0
> > #9  0x0000000000538668 in read_char (commandflag=1, map=map <at> entry=0x1645e493,
> prev_event=0x0,
> > used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffe0bb,
> end_time=end_time <at> entry=0x0) at
> > keyboard.c:3015
> >         c = 0x0
> >         local_getcjmp = {{__jmpbuf = {0, 6459013156217622215, 0,
> 140737488346880, 0, 13113857, -
> > 6459042925873656121, 6459043636991954631}, __mask_was_saved = 0,
> __saved_mask = {__val = {2,
> > 0, 5991556, 67072736, 111988528, 109922016, 5863938, 0, 67072736,
> 98399184, 5864240, 109922032,
> > 5510427, 0, 4625762720, 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 = 0x6df4b30
> >         jmpcount = <optimized out>
> > #10 0x0000000000539789 in read_key_sequence (keybuf=keybuf <at> entry
> =0x7fffffffe1e0,
> > prompt=prompt <at> entry=0x0, dont_downcase_last=dont_downcase_last <at> entry
> =false,
> > can_return_switch_frame=can_return_switch_frame <at> entry=true,
> > fix_current_buffer=fix_current_buffer <at> entry=true,
> prevent_redisplay=prevent_redisplay <at> entry=false,
> >     disable_text_conversion_p=false) at keyboard.c:10743
> >         interrupted_kboard = 0x6df4b30
> >         interrupted_frame = 0x191ebd60
> >         key = <optimized out>
> >         used_mouse_menu = false
> >         echo_local_start = 0
> >         last_real_key_start = 0
> >         keys_local_start = 0
> >         new_binding = <optimized out>
> >         count = <optimized out>
> >         t = 0
> >         echo_start = 0
> >         keys_start = 0
> >         current_binding = 0x1645e493
> >         first_unbound = 31
> >         mock_input = 0
> >         used_mouse_menu_history = {false <repeats 30 times>}
> >         fkey = {parent = 0x189f853, map = 0x189f853, start = 0, end = 0}
> >         keytran = {parent = 0x15554f4f941b, map = 0x15554f4f941b, start
> = 0, end = 0}
> >         indec = {parent = 0x189f863, map = 0x189f863, start = 0, end = 0}
> >         shift_translated = false
> >         delayed_switch_frame = 0x0
> >         original_uppercase = 0x0
> >         original_uppercase_position = -1
> >         disabled_conversion = false
> >         starting_buffer = 0x13b789a0
> >         fake_prefixed_keys = 0x0
> >         first_event = 0x0
> >         second_event = <optimized out>
> > #11 0x000000000053ac06 in command_loop_1 () at keyboard.c:1429
> >         cmd = <optimized out>
> >         keybuf = {0x11ac0, 0x15f855d3, 0x133e0, 0x5982d3
> <set_default_internal+530>, 0x7fffffffe260, 0x2,
> > 0x30, 0x1785bba5, 0x0, 0x5a770f <do_one_unbind+319>, 0x1804610, 0x60,
> 0x0, 0x0, 0x0, 0x5a8d59
> > <unbind_to+105>, 0xb, 0x111c0, 0x30, 0x1785bba5, 0x7bc0,
> 0xf4bec416f5a4e600, 0xcf32a0 <globals>,
> > 0x1566b533, 0x60,
> >           0x52f4c6 <cmd_error+363>, 0x0, 0xf4bec416f5a4e600, 0x60,
> 0x15554edf4d83}
> >         i = <optimized out>
> >         last_pt = <optimized out>
> >         prev_modiff = 396499
> >         prev_buffer = 0x13b789a0
> > #12 0x00000000005a7e25 in internal_condition_case (bfun=bfun <at> entry=0x53a9ce
> <command_loop_1>,
> > handlers=handlers <at> entry=0x90, hfun=hfun <at> entry=0x52f35b <cmd_error>) at
> eval.c:1613
> >         val = <optimized out>
> >         c = 0xe0fc60
> > #13 0x00000000005292ae in command_loop_2 (handlers=handlers <at> entry=0x90)
> at keyboard.c:1168
> >         val = <optimized out>
> > #14 0x00000000005a7d42 in internal_catch (tag=tag <at> entry=0x122d0,
> func=func <at> entry=0x529294
> > <command_loop_2>, arg=arg <at> entry=0x90) at eval.c:1292
> >         val = <optimized out>
> >         c = 0xea0f40
> > #15 0x000000000052926b in command_loop () at keyboard.c:1146
> > No locals.
> > #16 0x000000000052eec4 in recursive_edit_1 () at keyboard.c:754
> >         count = <optimized out>
> >         val = <optimized out>
> > #17 0x000000000052f25c in Frecursive_edit () at keyboard.c:837
> >         count = <optimized out>
> >         buffer = <optimized out>
> > #18 0x0000000000528660 in main (argc=<optimized out>,
> argv=0x7fffffffe5a8) at emacs.c:2635
> >         stack_bottom_variable = 0x155553f84458 <_gnutls_lib_state>
> >         old_argc = <optimized out>
> >         dump_file = 0x0
> >         no_loadup = false
> >         junk = 0x0
> >         dname_arg = 0x0
> >         ch_to_dir = 0x0
> >         original_pwd = 0x0
> >         dump_mode = <optimized out>
> >         skip_args = 1
> >         temacs = 0x0
> >         attempt_load_pdump = <optimized out>
> >         only_version = false
> >         rlim = {rlim_cur = 18446744073709551615, rlim_max =
> 18446744073709551615}
> >         lc_all = <optimized out>
> >         sockfd = -1
> >         module_assertions = <optimized out>
> > (gdb) p displayed_buffer
> > $1 = (struct buffer *) 0xfffffffffffffffb
>
> This value is garbled, I guess?  What does this show:
>
>   (gdb) p *displayed_buffer
>
> If it says "cannot access", I have no idea how this garbage could have
> ended up there.
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 15 Jun 2025 17:50:01 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> protonmail.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: martin rudalics <rudalics <at> gmx.at>, Eli Zaretskii <eliz <at> gnu.org>,
 acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 15 Jun 2025 17:49:42 +0000
"George P" <georgepanagopo <at> gmail.com> writes:

> Yes, that is precisely what it says....
>
> (gdb) p displayed_buffer
> $1 = (struct buffer *) 0xfffffffffffffffb

That's XBUFFER (Qnil), possibly set by this code in redisplay_internal:

  else if (FRAME_REDISPLAY_P (sf) && !FRAME_OBSCURED_P (sf))
    {
      sf->inhibit_clear_image_cache = true;
      displayed_buffer = XBUFFER (XWINDOW (selected_window)->contents);
      /* Use list_of_error, not Qerror, so that
	 we catch only errors and don't run the debugger.  */
      internal_condition_case_1 (redisplay_window_1, selected_window,
				 list_of_error,
				 redisplay_window_error);

However, I believe that's only the surface of the bug: the selected
window's contents should never be nil, right?  According to this comment
in window.h, that would mean it's a pseudo window, but another comment
says the selected window is always a leaf window:

    /* For a leaf window or a tooltip window this is the buffer shown
       in the window; for a combination window this is the first of
       its child windows; for a pseudo window showing the menu bar or
       tool bar this is nil.  It is a buffer for a minibuffer window
       as well.  */
    Lisp_Object contents;

/* This is the window in which the terminal's cursor should be left when
   nothing is being done with it.  This must always be a leaf window, and its
   buffer is selected by the top level editing loop at the end of each command.

   This value is always the same as FRAME_SELECTED_WINDOW (selected_frame).  */

So this looks like an inconsistent state reached by the redisplay
machinery.  We'd have to check whether it's the code above or actually
this code:

      if (update_miniwindow_p)
	{
	  Lisp_Object mini_window = FRAME_MINIBUF_WINDOW (sf);

	  displayed_buffer = XBUFFER (XWINDOW (mini_window)->contents);
	  internal_condition_case_1 (redisplay_window_1, mini_window,
				     list_of_error,
				     redisplay_window_error);
	}

While it would probably would have avoided the crash to check whether
XWINDOW (whichever)->contents is Qnil before setting displayed_buffer,
I don't think that's the right fix: violating that internal redisplay
assumption is a bad thing, and we need to figure out why it can happen
when windows are being deleted (possibly in delete-window-internal?)

Can you look up the line numbers against your source tree to see which
code segment was active when the error happened?

Thanks!
Pip





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Sun, 15 Jun 2025 18:02:01 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: martin rudalics <rudalics <at> gmx.at>, Eli Zaretskii <eliz <at> gnu.org>,
 acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Sun, 15 Jun 2025 14:01:11 -0400
[Message part 1 (text/plain, inline)]
>
> Can you look up the line numbers against your source tree to see which
> code segment was active when the error happened?


Yes, it was the latter, i.e.

      if (update_miniwindow_p)
{
 Lisp_Object mini_window = FRAME_MINIBUF_WINDOW (sf);

 displayed_buffer = XBUFFER (XWINDOW (mini_window)->contents);
17526 : internal_condition_case_1 (redisplay_window_1, mini_window,
    list_of_error,
    redisplay_window_error);
}

Thanks!
George
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Mon, 16 Jun 2025 07:27:01 GMT) Full text and rfc822 format available.

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

From: martin rudalics <rudalics <at> gmx.at>
To: George P <georgepanagopo <at> gmail.com>, Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Mon, 16 Jun 2025 09:25:57 +0200
> Yes, it was the latter, i.e.
>
>        if (update_miniwindow_p)
> {
>   Lisp_Object mini_window = FRAME_MINIBUF_WINDOW (sf);
>
>   displayed_buffer = XBUFFER (XWINDOW (mini_window)->contents);
> 17526 : internal_condition_case_1 (redisplay_window_1, mini_window,
>      list_of_error,
>      redisplay_window_error);
> }

Can you try

diff --git a/src/window.c b/src/window.c
index 1ac004af5e0..28ee8bc4035 100644
--- a/src/window.c
+++ b/src/window.c
@@ -303,6 +303,9 @@ wset_buffer (struct window *w, Lisp_Object val)
     /* Make sure that we do not assign the buffer
        to an internal window.  */
     eassert (MARKERP (w->start) && MARKERP (w->pointm));
+  else
+    eassert (!w->mini);
+
   w->contents = val;
   adjust_window_count (w, 1);
 }

and get us a backtrace when it's hit.

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78444; Package emacs. (Mon, 16 Jun 2025 08:35:02 GMT) Full text and rfc822 format available.

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

From: martin rudalics <rudalics <at> gmx.at>
To: George P <georgepanagopo <at> gmail.com>, Pip Cet <pipcet <at> protonmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, acorallo <at> gnu.org, 78444 <at> debbugs.gnu.org
Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)
Date: Mon, 16 Jun 2025 10:34:40 +0200
> Can you try
[...)
> and get us a backtrace when it's hit.

... which was a very silly proposal.  Please try

diff --git a/src/window.c b/src/window.c
index 1ac004af5e0..92e215fc9be 100644
--- a/src/window.c
+++ b/src/window.c
@@ -303,6 +303,14 @@ wset_buffer (struct window *w, Lisp_Object val)
     /* Make sure that we do not assign the buffer
        to an internal window.  */
     eassert (MARKERP (w->start) && MARKERP (w->pointm));
+  else
+    {
+      if (MARKERP (w->start))
+	eassert (!XMARKER (w->start)->buffer);
+      if (MARKERP (w->pointm))
+	eassert (!XMARKER (w->pointm)->buffer);
+    }
+
   w->contents = val;
   adjust_window_count (w, 1);
 }

instead.  If it does not work either, I will have to think of something
more elaborate.

Thanks, martin





This bug report was last modified 3 days ago.

Previous Next


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