Subject: 30.0.60; crash in mark_image_cache

From: Sean Whitton <[email-masked]>
Date: Thu, 04 Jul 2024 10:33:06 +0800

My pgtk Emacs keeps crashing.  This time I think I caught it.
I see there was a recent commit to code around here; if this backtrace
is not sufficient, I can try bisecting, but I cannot currently reproduce
the crash reliably.

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x00005555557a2c51 in mark_image_cache (c=0x55555729fc70) at image.c:3775
3775		if (c->images[i])
(gdb)

  0 in mark_image_cache of image.c:3775
  1 in mark_frame of alloc.c:7063
  2 in process_mark_stack of alloc.c:7303
  3 in mark_object of alloc.c:7504
  4 in mark_char_table of alloc.c:6920
  5 in mark_char_table of alloc.c:6917
  6 in process_mark_stack of alloc.c:7341
  7 in mark_object of alloc.c:7504
  8 in mark_char_table of alloc.c:6920
  9 in mark_char_table of alloc.c:6917
 10 in process_mark_stack of alloc.c:7341
 11 in mark_object of alloc.c:7504
 12 in mark_char_table of alloc.c:6920
 13 in mark_char_table of alloc.c:6917
 14 in process_mark_stack of alloc.c:7341
 15 in mark_object of alloc.c:7504
 16 in mark_interval_tree_1 of alloc.c:1529
 17 in traverse_intervals_noorder of intervals.c:243
 18 in mark_interval_tree of alloc.c:1538
 19 in process_mark_stack of alloc.c:7264
 20 in mark_object of alloc.c:7504
 21 in mark_interval_tree_1 of alloc.c:1529
 22 in traverse_intervals_noorder of intervals.c:243
 23 in traverse_intervals_noorder of intervals.c:248
 24 in traverse_intervals_noorder of intervals.c:248
 25 in traverse_intervals_noorder of intervals.c:248
 26 in traverse_intervals_noorder of intervals.c:248
 27 in mark_interval_tree of alloc.c:1538
 28 in mark_buffer of alloc.c:6958
 29 in process_mark_stack of alloc.c:7299
 30 in mark_object of alloc.c:7504
 31 in mark_interval_tree_1 of alloc.c:1529
 32 in traverse_intervals_noorder of intervals.c:243
 33 in mark_interval_tree of alloc.c:1538
 34 in process_mark_stack of alloc.c:7264
 35 in mark_objects of alloc.c:7512
 36 in mark_vectorlike of alloc.c:6891
 37 in mark_buffer of alloc.c:6954
 38 in process_mark_stack of alloc.c:7299
 39 in mark_object of alloc.c:7504
 40 in mark_discard_killed_buffers of alloc.c:7020
 41 in mark_window of alloc.c:7087
 42 in process_mark_stack of alloc.c:7307
 43 in mark_objects of alloc.c:7512
 44 in mark_vectorlike of alloc.c:6891
 45 in mark_window of alloc.c:7072
 46 in process_mark_stack of alloc.c:7307
 47 in mark_objects of alloc.c:7512
 48 in mark_vectorlike of alloc.c:6891
 49 in mark_frame of alloc.c:7037
 50 in process_mark_stack of alloc.c:7303
 51 in mark_objects of alloc.c:7512
 52 in mark_vectorlike of alloc.c:6891
 53 in mark_window of alloc.c:7072
 54 in process_mark_stack of alloc.c:7307
 55 in mark_object of alloc.c:7504
 56 in mark_char_table of alloc.c:6920
 57 in mark_char_table of alloc.c:6917
 58 in process_mark_stack of alloc.c:7341
 59 in mark_objects of alloc.c:7512
 60 in mark_vectorlike of alloc.c:6891
 61 in mark_buffer of alloc.c:6954
 62 in process_mark_stack of alloc.c:7299
 63 in mark_objects of alloc.c:7512
 64 in mark_vectorlike of alloc.c:6891
 65 in mark_buffer of alloc.c:6954
 66 in process_mark_stack of alloc.c:7299
 67 in mark_objects of alloc.c:7512
 68 in mark_vectorlike of alloc.c:6891
 69 in mark_buffer of alloc.c:6954
 70 in process_mark_stack of alloc.c:7299
 71 in mark_objects of alloc.c:7512
 72 in mark_vectorlike of alloc.c:6891
 73 in mark_buffer of alloc.c:6954
 74 in process_mark_stack of alloc.c:7299
 75 in mark_object of alloc.c:7504
 76 in mark_char_table of alloc.c:6920
 77 in mark_char_table of alloc.c:6917
 78 in process_mark_stack of alloc.c:7341
 79 in mark_object of alloc.c:7504
 80 in mark_char_table of alloc.c:6920
 81 in mark_char_table of alloc.c:6917
 82 in process_mark_stack of alloc.c:7341
 83 in mark_objects of alloc.c:7512
 84 in mark_vectorlike of alloc.c:6891
 85 in mark_buffer of alloc.c:6954
 86 in process_mark_stack of alloc.c:7299
 87 in mark_object of alloc.c:7504
 88 in mark_char_table of alloc.c:6920
 89 in mark_char_table of alloc.c:6917
 90 in process_mark_stack of alloc.c:7341
 91 in mark_objects of alloc.c:7512
 92 in mark_vectorlike of alloc.c:6891
 93 in mark_buffer of alloc.c:6954
 94 in process_mark_stack of alloc.c:7299
 95 in mark_objects of alloc.c:7512
 96 in mark_vectorlike of alloc.c:6891
 97 in mark_buffer of alloc.c:6954
 98 in process_mark_stack of alloc.c:7299
 99 in mark_objects of alloc.c:7512
100 in mark_vectorlike of alloc.c:6891
101 in mark_buffer of alloc.c:6954
102 in process_mark_stack of alloc.c:7299
103 in mark_objects of alloc.c:7512
104 in mark_vectorlike of alloc.c:6891
105 in mark_buffer of alloc.c:6954
106 in process_mark_stack of alloc.c:7299
107 in mark_object of alloc.c:7504
108 in mark_char_table of alloc.c:6920
109 in process_mark_stack of alloc.c:7341
110 in mark_object of alloc.c:7504
111 in mark_char_table of alloc.c:6920
112 in process_mark_stack of alloc.c:7341
113 in mark_object of alloc.c:7504
114 in mark_char_table of alloc.c:6920
115 in process_mark_stack of alloc.c:7341
116 in mark_object of alloc.c:7504
117 in mark_char_table of alloc.c:6920
118 in process_mark_stack of alloc.c:7341
119 in mark_objects of alloc.c:7512
120 in mark_vectorlike of alloc.c:6891
121 in mark_buffer of alloc.c:6954
122 in process_mark_stack of alloc.c:7299
123 in mark_objects of alloc.c:7512
124 in mark_vectorlike of alloc.c:6891
125 in mark_buffer of alloc.c:6954
126 in process_mark_stack of alloc.c:7299
127 in mark_objects of alloc.c:7512
128 in mark_vectorlike of alloc.c:6891
129 in mark_buffer of alloc.c:6954
130 in process_mark_stack of alloc.c:7299
131 in mark_objects of alloc.c:7512
132 in mark_vectorlike of alloc.c:6891
133 in mark_buffer of alloc.c:6954
134 in process_mark_stack of alloc.c:7299
135 in mark_objects of alloc.c:7512
136 in mark_vectorlike of alloc.c:6891
137 in mark_buffer of alloc.c:6954
138 in process_mark_stack of alloc.c:7299
139 in mark_objects of alloc.c:7512
140 in mark_vectorlike of alloc.c:6891
141 in mark_buffer of alloc.c:6954
142 in process_mark_stack of alloc.c:7299
143 in mark_objects of alloc.c:7512
144 in mark_vectorlike of alloc.c:6891
145 in mark_buffer of alloc.c:6954
146 in process_mark_stack of alloc.c:7299
147 in mark_objects of alloc.c:7512
148 in mark_vectorlike of alloc.c:6891
149 in mark_buffer of alloc.c:6954
150 in process_mark_stack of alloc.c:7299
151 in mark_object of alloc.c:7504
152 in mark_object_root_visitor of alloc.c:6396
153 in visit_vectorlike_root of alloc.c:6348
154 in visit_buffer_root of alloc.c:6362
155 in visit_static_gc_roots of alloc.c:6374
156 in garbage_collect of alloc.c:6598
157 in maybe_garbage_collect of alloc.c:6507
158 in maybe_gc of /home/spwhitton/src/emacs/primary/src/lisp.h:5929
159 in Ffuncall of eval.c:3088
160 in read_char of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
161 in read_key_sequence of keyboard.c:10743
162 in command_loop_1 of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
163 in internal_condition_case of eval.c:1613
164 in command_loop_2 of keyboard.c:1168
165 in internal_catch of eval.c:1292
166 in command_loop of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
167 in recursive_edit_1 of keyboard.c:754
168 in Frecursive_edit of keyboard.c:837
169 in main of emacs.c:2631

-- 
Sean Whitton