GNU bug report logs - #79911
30.0.50 crashes along garbage_collect (),... expand_file_name,..,STRING_BYTES

Previous Next

Package: emacs;

Reported by: andrei.elkin <at> pp.inet.fi

Date: Sat, 29 Nov 2025 18:45:02 UTC

Severity: normal

Found in version 30.0.50

To reply to this bug, email your comments to 79911 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#79911; Package emacs. (Sat, 29 Nov 2025 18:45:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to andrei.elkin <at> pp.inet.fi:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 29 Nov 2025 18:45:02 GMT) Full text and rfc822 format available.

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

From: andrei.elkin <at> pp.inet.fi
To: Bug-gnu Emacs <bug-gnu-emacs <at> gnu.org>
Subject: 30.0.50 crashes along  garbage_collect (),...
 expand_file_name,..,STRING_BYTES
Date: Sat, 29 Nov 2025 20:44:33 +0200
Hi again.

I've just got a 2nd crash, the stack is below (the same M-x 
report-emacs-bug as in bug#79909), after restoring a former bug#79909 
suffered unlucky emacs session.

The crashed session again was found when  I mouse-selected a link, that 
is no activity

in the emacs itself, from a slack application. There must be no 
communication between the slack (on the X server machine) and the 
emacsclient (as X client) , so if anything emacs sensed X11 selection.

The crashed session is alive in gdb waiting for in- and ex- tructions.

Cheers,
Andrei

Breakpoint 3 at 0x555555880101: file eval.c, line 3111.
+python
+bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, 
threadid=<optimized out>) at pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at 
pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo <at> entry=6) 
at pthread_kill.c:89
#3  0x00007ffff3a4527e in __GI_raise (sig=6) at raise.c:26
#4  0x00005555557867c9 in terminate_due_to_signal (sig=6, 
backtrace_limit=2147483647) at emacs.c:480
#5  0x000055555584105e in die (msg=0x5555559f3e2d "0 <= nbytes", 
file=0x5555559f3d40 "lisp.h", line=1704) at alloc.c:7304
#6  0x00005555557f0454 in STRING_BYTES (s=0x555556f85b90) at lisp.h:1704
#7  0x00005555557f047a in SBYTES (string=XIL(0x555556f85b94)) at 
lisp.h:1711
#8  0x00005555557f0495 in CHECK_STRING_NULL_BYTES 
(string=XIL(0x555556f85b94)) at lisp.h:1727
#9  0x00005555557f2d1e in Fexpand_file_name (name=XIL(0x555556f85b94), 
default_directory=XIL(0)) at fileio.c:1048
#10 0x000055555580074c in Fdo_auto_save (no_message=XIL(0x30), 
current_only=XIL(0)) at fileio.c:6363
#11 0x000055555578acc1 in shut_down_emacs (sig=6, stuff=XIL(0)) at 
emacs.c:3148
#12 0x0000555555786770 in terminate_due_to_signal (sig=6, 
backtrace_limit=40) at emacs.c:463
#13 0x00005555557c1d2a in emacs_abort () at sysdep.c:2378
#14 0x000055555583f357 in check_live (livep=0x55555583c216 
<live_cons_p>, mtype=MEM_TYPE_CONS, po=0x555577238f00, m=0x5555667a2c70) 
at alloc.c:6410
#15 0x000055555583f3ce in check_allocated_and_live (livep=0x55555583c216 
<live_cons_p>, mtype=MEM_TYPE_CONS, po=0x555577238f00) at alloc.c:6432
#16 0x000055555583fae9 in process_mark_stack (base_sp=0) at alloc.c:6676
#17 0x000055555583fd2d in mark_object (obj=XIL(0x555577238f03)) at 
alloc.c:6724
#18 0x00005555557b144a in mark_kboards () at keyboard.c:14574
#19 0x000055555583dedb in garbage_collect () at alloc.c:5867
#20 0x000055555583dbf0 in maybe_garbage_collect () at alloc.c:5772
#21 0x0000555555878433 in maybe_gc () at lisp.h:5922
#22 0x0000555555880495 in Ffuncall (nargs=4, args=0x7fffffffbd90) at 
eval.c:3172
#23 0x00007fffef646f46 in 
F7365742d666163652d6174747269627574652d66726f6d2d7265736f75726365_set_face_attribute_from_resource_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/faces-b9447c93-5cdbccfe.eln
#24 0x0000555555880965 in funcall_subr (subr=0x7fffefc9c3d8, numargs=5, 
args=0x7fffffffbf78) at eval.c:3253
#25 0x00005555558801cd in funcall_general (fun=XIL(0x7fffefc9c3dd), 
numargs=5, args=0x7fffffffbf78) at eval.c:3124
#26 0x00005555558804de in Ffuncall (nargs=6, args=0x7fffffffbf70) at 
eval.c:3177
#27 0x00007fffef647262 in 
F7365742d666163652d617474726962757465732d66726f6d2d7265736f7572636573_set_face_attributes_from_resources_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/faces-b9447c93-5cdbccfe.eln
#28 0x00005555558808a5 in funcall_subr (subr=0x7fffefc926e0, numargs=2, 
args=0x7fffffffc158) at eval.c:3247
#29 0x00005555558801cd in funcall_general (fun=XIL(0x7fffefc926e5), 
numargs=2, args=0x7fffffffc158) at eval.c:3124
#30 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffc150) at 
eval.c:3177
#31 0x00007fffef647471 in 
F6d616b652d666163652d782d7265736f757263652d696e7465726e616c_make_face_x_resource_internal_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/faces-b9447c93-5cdbccfe.eln
#32 0x00005555558808a5 in funcall_subr (subr=0x7fffefcba620, numargs=2, 
args=0x7fffffffc3b8) at eval.c:3247
#33 0x00005555558801cd in funcall_general (fun=XIL(0x7fffefcba625), 
numargs=2, args=0x7fffffffc3b8) at eval.c:3124
#34 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffc3b0) at 
eval.c:3177
#35 0x00007fffef64d647 in 
F666163652d737065632d726563616c63_face_spec_recalc_0 () at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/faces-b9447c93-5cdbccfe.eln
#36 0x00005555558808a5 in funcall_subr (subr=0x7fffef90d250, numargs=2, 
args=0x7fffffffc6a8) at eval.c:3247
#37 0x00005555558801cd in funcall_general (fun=XIL(0x7fffef90d255), 
numargs=2, args=0x7fffffffc6a8) at eval.c:3124
#38 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffc6a0) at 
eval.c:3177
#39 0x00007fffef6504fe in 
F666163652d7365742d61667465722d6672616d652d64656661756c74_face_set_after_frame_default_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/faces-b9447c93-5cdbccfe.eln
#40 0x00005555558808a5 in funcall_subr (subr=0x7ffff0002838, numargs=2, 
args=0x7fffffffc888) at eval.c:3247
#41 0x00005555558801cd in funcall_general (fun=XIL(0x7ffff000283d), 
numargs=2, args=0x7fffffffc888) at eval.c:3124
#42 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffc880) at 
eval.c:3177
#43 0x00005555555d2080 in Freconsider_frame_fonts 
(frame=XIL(0x55556d9af375)) at frame.c:6847
#44 0x00007fffeee412ca in 
F666f6e742d73657474696e672d6368616e67652d64656661756c742d666f6e74_font_setting_change_default_font_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/dynamic-setting-55f80457-4b2011e9.eln
#45 0x00005555558808a5 in funcall_subr (subr=0x7fffefe876c0, numargs=2, 
args=0x7fffffffcaa8) at eval.c:3247
#46 0x00005555558801cd in funcall_general (fun=XIL(0x7fffefe876c5), 
numargs=2, args=0x7fffffffcaa8) at eval.c:3124
#47 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffcaa0) at 
eval.c:3177
#48 0x00007fffeee41521 in 
F64796e616d69632d73657474696e672d68616e646c652d636f6e6669672d6368616e6765642d6576656e74_dynamic_setting_handle_config_changed_event_0 
() at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/dynamic-setting-55f80457-4b2011e9.eln
#49 0x000055555588087b in funcall_subr (subr=0x7fffefe87488, numargs=1, 
args=0x7fffffffce00) at eval.c:3245
#50 0x00005555558801cd in funcall_general (fun=XIL(0x7fffefe8748d), 
numargs=1, args=0x7fffffffce00) at eval.c:3124
#51 0x00005555558804de in Ffuncall (nargs=2, args=0x7fffffffcdf8) at 
eval.c:3177
#52 0x0000555555873f85 in Ffuncall_interactively (nargs=2, 
args=0x7fffffffcdf8) at callint.c:250
#53 0x0000555555880af0 in funcall_subr (subr=0x555555abfc40 
<Sfuncall_interactively>, numargs=2, args=0x7fffffffcdf8) at eval.c:3268
#54 0x00005555558801cd in funcall_general (fun=XIL(0x555555abfc45), 
numargs=2, args=0x7fffffffcdf8) at eval.c:3124
#55 0x00005555558804de in Ffuncall (nargs=3, args=0x7fffffffcdf0) at 
eval.c:3177
#56 0x0000555555876794 in Fcall_interactively 
(function=XIL(0x2aaa9a341998), record_flag=XIL(0), 
keys=XIL(0x5555674c5d9d)) at callint.c:789
#57 0x00007fffef49809d in 
F636f6d6d616e642d65786563757465_command_execute_0 () at 
/usr/local/src/emacs/git/WTs/master/src/../native-lisp/31.0.50-541d5258/preloaded/simple-fab5b0cf-5aa40f47.eln
#58 0x0000555555880919 in funcall_subr (subr=0x7ffff02d37f0, numargs=4, 
args=0x7fffffffd428) at eval.c:3251
#59 0x00005555558801cd in funcall_general (fun=XIL(0x7ffff02d37f5), 
numargs=4, args=0x7fffffffd428) at eval.c:3124
#60 0x00005555558804de in Ffuncall (nargs=5, args=0x7fffffffd420) at 
eval.c:3177
#61 0x0000555555795386 in read_char (commandflag=1, 
map=XIL(0x55556735bc33), prev_event=XIL(0), 
used_mouse_menu=0x7fffffffd649, end_time=0x0) at keyboard.c:3093
#62 0x00005555557a9c13 in read_key_sequence (keybuf=0x7fffffffd870, 
prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, 
fix_current_buffer=true, prevent_redisplay=false, 
disable_text_conversion_p=false) at keyboard.c:11165
#63 0x000055555578fed5 in command_loop_1 () at keyboard.c:1424
#64 0x000055555587c251 in internal_condition_case (bfun=0x55555578fa87 
<command_loop_1>, handlers=XIL(0x90), hfun=0x55555578ee7a <cmd_error>) 
at eval.c:1690
#65 0x000055555578f62a in command_loop_2 (handlers=XIL(0x90)) at 
keyboard.c:1163
#66 0x000055555587b622 in internal_catch (tag=XIL(0x12780), 
func=0x55555578f5fc <command_loop_2>, arg=XIL(0x90)) at eval.c:1370
#67 0x000055555578f5b8 in command_loop () at keyboard.c:1141
#68 0x000055555578e8fc in recursive_edit_1 () at keyboard.c:749
#69 0x000055555578eb30 in Frecursive_edit () at keyboard.c:832
#70 0x0000555555789f07 in main (argc=7, argv=0x7fffffffdd48) at 
emacs.c:2629
++set $bt = backtrace_top ()
++if backtrace_p ($bt)
+++echo \n

+++echo Lisp Backtrace:\n
Lisp Backtrace:
+++xbacktrace
++++set $bt = backtrace_top ()
++++while backtrace_p ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"Automatic GC"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0x0)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"internal-face-x-get-resource"++++++printf " (0x%x)\n", backtrace_args 
($bt)
 (0xffffbd98)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"set-face-attribute-from-resource"++++++printf " (0x%x)\n", 
backtrace_args ($bt)
 (0xffffbf78)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"set-face-attributes-from-resources"++++++printf " (0x%x)\n", 
backtrace_args ($bt)
 (0xffffc158)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"make-face-x-resource-internal"++++++printf " (0x%x)\n", backtrace_args 
($bt)
 (0xffffc3b8)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"face-spec-recalc"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc6a8)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"face-set-after-frame-default"++++++printf " (0x%x)\n", backtrace_args 
($bt)
 (0xffffc888)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"font-setting-change-default-font"++++++printf " (0x%x)\n", 
backtrace_args ($bt)
 (0xffffcaa8)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"dynamic-setting-handle-config-changed-event"++++++printf " (0x%x)\n", 
backtrace_args ($bt)
 (0xffffce00)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"funcall-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffcdf8)
+++++set $bt = backtrace_next ($bt)
+++++set $fun = backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix = $fun.i
++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & 
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type == Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix = $fun.i
++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname = $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix = $symname.i
++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr != 0
++++++++set $sym_name = (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data = "" *) $sym_name->u.s.data
++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? 
($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize == 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : 
($data[0])@($strsize)
"command-execute"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffd428)
+++++set $bt = backtrace_next ($bt)

=============================================================================================
M-x report-emacs-bug

In GNU Emacs 31.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.0, Xaw3d scroll bars) of 2025-11-22 built on
 andrei-MS-7D96
Repository revision: 46d0f1fef197f2049436a6fabca7f9e929b476a6
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 
11.0.12101011
System Description: Ubuntu 24.04.3 LTS

Configured using:
 'configure --with-x-toolkit=lucid --enable-checking=yes,glyphs
 --enable-check-lisp-object-type 'CFLAGS=-ggdb3 -O0' LDFLAGS=-ggdb3
 'CXXFLAGS=-ggdb3 -O0''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 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 XINERAMA XINPUT2
XPM XRANDR LUCID ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  desktop-save-mode: t
  winner-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-nonselected-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug lisp-mnt message yank-media rfc822 mml
mml-sec gnus-util mm-decode mm-bodies mm-encode mailabbrev gmm-utils
mailheader sendmail mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils dired-aux selected-window-contrast desktop
treesit-fold treesit-fold-summary treesit-fold-parsers treesit-fold-util
mule-util lsp-ui lsp-ui-doc goto-addr lsp-ui-imenu lsp-ui-peek
lsp-ui-sideline lsp-ui-util face-remap find-func frameset winner
cus-edit cus-start cus-load 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 epa derived magit-repos magit-apply magit-wip
magit-log which-func magit-diff smerge-mode diff diff-mode track-changes
easy-mmode git-commit log-edit pcvs-util add-log magit-core magit-margin
magit-transient c++-ts-mode c-ts-mode c-ts-common treesit gud advice lsp
lsp-mode lsp-protocol xref project tree-widget wid-edit spinner
network-stream puny nsm markdown-mode color noutline outline lv inline
imenu ht f s ewoc epg rfc6068 epg-config dash compile
text-property-search sql view thingatpt dired dired-loaddefs cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs use-package-core finder-inf blamer-autoloads async-autoloads
git-link-autoloads git-timemachine-autoloads logview-autoloads
datetime-autoloads extmap-autoloads lsp-ui-autoloads lsp-mode-autoloads
ht-autoloads f-autoloads dash-autoloads lv-autoloads magit-autorevert
autorevert filenotify magit-process with-editor shell pcomplete comint
ansi-osc ring server ansi-color magit-mode transient pp edmacro kmacro
benchmark magit-git magit-base magit-section format-spec cursor-sensor
crm llama comp comp-cstr cond-let compat magit-autoloads pcase
magit-section-autoloads llama-autoloads cond-let-autoloads
markdown-mode-autoloads posframe-autoloads s-autoloads
selected-window-accent-mode-autoloads selected-window-contrast-autoloads
spinner-autoloads syslog-mode-autoloads hsluv-autoloads ov-autoloads
hide-lines-autoloads treesit-fold-autoloads vc-msg-autoloads
popup-autoloads info with-editor-autoloads package browse-url xdg url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json map
url-vars cl-extra help-mode warnings icons comp-run comp-common rx
time-date subr-x cl-loaddefs cl-lib term/screen term/xterm xterm
byte-opt gv bytecomp byte-compile rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
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 lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tt

y move-toolbar make-network-process tty-child-frames
native-compile emacs)

Memory information:
((conses 16 539049 31628) (symbols 48 36520 0)
 (strings 32 167191 8021) (string-bytes 1 4697819) (vectors 16 56937)
 (vector-slots 8 683274 23212) (floats 8 291 20932)
 (intervals 56 710 0) (buffers 1064 17))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#79911; Package emacs. (Sat, 29 Nov 2025 20:04:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: andrei.elkin <at> pp.inet.fi
Cc: 79911 <at> debbugs.gnu.org
Subject: Re: bug#79911: 30.0.50 crashes along  garbage_collect (),
 ... expand_file_name, .., STRING_BYTES
Date: Sat, 29 Nov 2025 22:03:19 +0200
> Date: Sat, 29 Nov 2025 20:44:33 +0200
> From: andrei.elkin--- via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> I've just got a 2nd crash, the stack is below (the same M-x 
> report-emacs-bug as in bug#79909), after restoring a former bug#79909 
> suffered unlucky emacs session.
> 
> The crashed session again was found when  I mouse-selected a link, that 
> is no activity
> 
> in the emacs itself, from a slack application. There must be no 
> communication between the slack (on the X server machine) and the 
> emacsclient (as X client) , so if anything emacs sensed X11 selection.
> 
> The crashed session is alive in gdb waiting for in- and ex- tructions.

Thanks, but what about the data I asked for?

  (gdb) frame 14
  (gdb) p m->type
  (gdb) p mtype




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

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

From: andrei.elkin <at> pp.inet.fi
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 79911 <at> debbugs.gnu.org
Subject: Re: bug#79911: 30.0.50 crashes along  garbage_collect (), ...
 expand_file_name, .., STRING_BYTES
Date: Sun, 30 Nov 2025 18:41:56 +0200
Good evening Eli!

Eli Zaretskii kirjoitti 2025-11-29 22:03:
>> Date: Sat, 29 Nov 2025 20:44:33 +0200
>> From: andrei.elkin--- via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> I've just got a 2nd crash, the stack is below (the same M-x
>> report-emacs-bug as in bug#79909), after restoring a former bug#79909
>> suffered unlucky emacs session.
>> 
>> The crashed session again was found when  I mouse-selected a link, 
>> that
>> is no activity
>> 
>> in the emacs itself, from a slack application. There must be no
>> communication between the slack (on the X server machine) and the
>> emacsclient (as X client) , so if anything emacs sensed X11 selection.
>> 
>> The crashed session is alive in gdb waiting for in- and ex- tructions.
> 
> Thanks, but what about the data I asked for?
> 
>   (gdb) frame 14
>   (gdb) p m->type
>   (gdb) p mtype

Sorry, I seem to have not read your text to the end.

(gdb) f 14
+f 14
#14 0x000055555583f357 in check_live (livep=0x55555583c216 
<live_cons_p>, mtype=MEM_TYPE_CONS, po=0x555577238f00, m=0x5555667a2c70) 
at alloc.c:6410
/usr/local/src/emacs/git/WTs/master/src/alloc.c:6410:183411:beg:0x55555583f357
(gdb) p m->type
+p m->type
$3 = MEM_TYPE_CONS
(gdb) p mtype
+p mtype
$4 = MEM_TYPE_CONS

Note too, Pip 's just come up with a `p kbd_buffer` and you are cc-d.

Cheers,
Andrei




This bug report was last modified 1 day ago.

Previous Next


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