Subject: Re: bug#71929: 30.0.60; crash in mark_image_cache

From: Sean Whitton <[email-masked]>
Date: Tue, 9 Jul 2024 13:48:32 +0800

On Sun, Jul 07, 2024 at 09:47:28PM +0800, Po Lu wrote:

> I must ask you to bear with me again, as another detail was not
> correctly accounted for in the last patch.  Please retry with this:

This just crashed.  Apparent trigger was 'emacsclient -t', this time.

verify_image_cache_refcount is not in the backtrace.

I should be able to keep it open in a stable build of Emacs for at least 24h
if you'd like to ask for more.

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

  0 in mark_image_cache of image.c:3776
  1 in mark_frame of alloc.c:7063
  2 in process_mark_stack of alloc.c:7303
  3 in mark_objects of alloc.c:7512
  4 in mark_vectorlike of alloc.c:6891
  5 in mark_frame of alloc.c:7037
  6 in process_mark_stack of alloc.c:7303
  7 in mark_objects of alloc.c:7512
  8 in mark_vectorlike of alloc.c:6891
  9 in mark_window of alloc.c:7072
 10 in process_mark_stack of alloc.c:7307
 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_objects of alloc.c:7512
 16 in mark_vectorlike of alloc.c:6891
 17 in mark_buffer of alloc.c:6954
 18 in process_mark_stack of alloc.c:7299
 19 in mark_object of alloc.c:7504
 20 in mark_interval_tree_1 of alloc.c:1529
 21 in traverse_intervals_noorder of intervals.c:243
 22 in traverse_intervals_noorder of intervals.c:248
 23 in mark_interval_tree of alloc.c:1538
 24 in process_mark_stack of alloc.c:7264
 25 in mark_objects of alloc.c:7512
 26 in mark_vectorlike of alloc.c:6891
 27 in mark_buffer of alloc.c:6954
 28 in process_mark_stack of alloc.c:7299
 29 in mark_object of alloc.c:7504
 30 in mark_interval_tree_1 of alloc.c:1529
 31 in traverse_intervals_noorder of intervals.c:243
 32 in mark_interval_tree of alloc.c:1538
 33 in process_mark_stack of alloc.c:7264
 34 in mark_object of alloc.c:7504
 35 in mark_char_table of alloc.c:6920
 36 in mark_char_table of alloc.c:6917
 37 in process_mark_stack of alloc.c:7341
 38 in mark_objects of alloc.c:7512
 39 in mark_vectorlike of alloc.c:6891
 40 in mark_buffer of alloc.c:6954
 41 in process_mark_stack of alloc.c:7299
 42 in mark_object of alloc.c:7504
 43 in mark_char_table of alloc.c:6920
 44 in mark_char_table of alloc.c:6917
 45 in process_mark_stack of alloc.c:7341
 46 in mark_object of alloc.c:7504
 47 in mark_char_table of alloc.c:6920
 48 in mark_char_table of alloc.c:6917
 49 in process_mark_stack of alloc.c:7341
 50 in mark_object of alloc.c:7504
 51 in mark_char_table of alloc.c:6920
 52 in mark_char_table of alloc.c:6917
 53 in process_mark_stack of alloc.c:7341
 54 in mark_objects of alloc.c:7512
 55 in mark_vectorlike of alloc.c:6891
 56 in mark_buffer of alloc.c:6954
 57 in process_mark_stack of alloc.c:7299
 58 in mark_object of alloc.c:7504
 59 in mark_char_table of alloc.c:6920
 60 in mark_char_table of alloc.c:6917
 61 in process_mark_stack of alloc.c:7341
 62 in mark_objects of alloc.c:7512
 63 in mark_vectorlike of alloc.c:6891
 64 in mark_buffer of alloc.c:6954
 65 in process_mark_stack of alloc.c:7299
 66 in mark_objects of alloc.c:7512
 67 in mark_vectorlike of alloc.c:6891
 68 in mark_buffer of alloc.c:6954
 69 in process_mark_stack of alloc.c:7299
 70 in mark_object of alloc.c:7504
 71 in mark_char_table of alloc.c:6920
 72 in mark_char_table of alloc.c:6917
 73 in process_mark_stack of alloc.c:7341
 74 in mark_objects of alloc.c:7512
 75 in mark_vectorlike of alloc.c:6891
 76 in mark_buffer of alloc.c:6954
 77 in process_mark_stack of alloc.c:7299
 78 in mark_objects of alloc.c:7512
 79 in mark_vectorlike of alloc.c:6891
 80 in mark_window of alloc.c:7072
 81 in process_mark_stack of alloc.c:7307
 82 in mark_objects of alloc.c:7512
 83 in mark_vectorlike of alloc.c:6891
 84 in mark_frame of alloc.c:7037
 85 in process_mark_stack of alloc.c:7303
 86 in mark_objects of alloc.c:7512
 87 in mark_vectorlike of alloc.c:6891
 88 in mark_window of alloc.c:7072
 89 in process_mark_stack of alloc.c:7307
 90 in mark_objects of alloc.c:7512
 91 in mark_vectorlike of alloc.c:6891
 92 in mark_buffer of alloc.c:6954
 93 in process_mark_stack of alloc.c:7299
 94 in mark_objects of alloc.c:7512
 95 in mark_vectorlike of alloc.c:6891
 96 in mark_buffer of alloc.c:6954
 97 in process_mark_stack of alloc.c:7299
 98 in mark_objects of alloc.c:7512
 99 in mark_vectorlike of alloc.c:6891
100 in mark_buffer of alloc.c:6954
101 in process_mark_stack of alloc.c:7299
102 in mark_object of alloc.c:7504
103 in mark_interval_tree_1 of alloc.c:1529
104 in traverse_intervals_noorder of intervals.c:243
105 in mark_interval_tree of alloc.c:1538
106 in process_mark_stack of alloc.c:7264
107 in mark_objects of alloc.c:7512
108 in mark_vectorlike of alloc.c:6891
109 in mark_buffer of alloc.c:6954
110 in process_mark_stack of alloc.c:7299
111 in mark_object of alloc.c:7504
112 in mark_interval_tree_1 of alloc.c:1529
113 in traverse_intervals_noorder of intervals.c:243
114 in mark_interval_tree of alloc.c:1538
115 in process_mark_stack of alloc.c:7264
116 in mark_objects of alloc.c:7512
117 in mark_vectorlike of alloc.c:6891
118 in mark_buffer of alloc.c:6954
119 in process_mark_stack of alloc.c:7299
120 in mark_objects of alloc.c:7512
121 in mark_vectorlike of alloc.c:6891
122 in mark_buffer of alloc.c:6954
123 in process_mark_stack of alloc.c:7299
124 in mark_object of alloc.c:7504
125 in mark_interval_tree_1 of alloc.c:1529
126 in traverse_intervals_noorder of intervals.c:243
127 in mark_interval_tree of alloc.c:1538
128 in process_mark_stack of alloc.c:7264
129 in mark_objects of alloc.c:7512
130 in mark_vectorlike of alloc.c:6891
131 in mark_buffer of alloc.c:6954
132 in process_mark_stack of alloc.c:7299
133 in mark_object of alloc.c:7504
134 in mark_char_table of alloc.c:6920
135 in process_mark_stack of alloc.c:7341
136 in mark_object of alloc.c:7504
137 in mark_char_table of alloc.c:6920
138 in process_mark_stack of alloc.c:7341
139 in mark_object of alloc.c:7504
140 in mark_char_table of alloc.c:6920
141 in process_mark_stack of alloc.c:7341
142 in mark_object of alloc.c:7504
143 in mark_char_table of alloc.c:6920
144 in process_mark_stack of alloc.c:7341
145 in mark_objects of alloc.c:7512
146 in mark_vectorlike of alloc.c:6891
147 in mark_buffer of alloc.c:6954
148 in process_mark_stack of alloc.c:7299
149 in mark_objects of alloc.c:7512
150 in mark_vectorlike of alloc.c:6891
151 in mark_buffer of alloc.c:6954
152 in process_mark_stack of alloc.c:7299
153 in mark_objects of alloc.c:7512
154 in mark_vectorlike of alloc.c:6891
155 in mark_buffer of alloc.c:6954
156 in process_mark_stack of alloc.c:7299
157 in mark_objects of alloc.c:7512
158 in mark_vectorlike of alloc.c:6891
159 in mark_buffer of alloc.c:6954
160 in process_mark_stack of alloc.c:7299
161 in mark_objects of alloc.c:7512
162 in mark_vectorlike of alloc.c:6891
163 in mark_buffer of alloc.c:6954
164 in process_mark_stack of alloc.c:7299
165 in mark_object of alloc.c:7504
166 in mark_object_root_visitor of alloc.c:6396
167 in visit_vectorlike_root of alloc.c:6348
168 in visit_buffer_root of alloc.c:6362
169 in visit_static_gc_roots of alloc.c:6374
170 in garbage_collect of alloc.c:6598
171 in maybe_garbage_collect of alloc.c:6507
172 in maybe_gc of /home/spwhitton/src/emacs/primary/src/lisp.h:5929
173 in Ffuncall of eval.c:3088
174 in Fmaphash of fns.c:5974
175 in funcall_subr of eval.c:3163
176 in exec_byte_code of bytecode.c:812
177 in funcall_lambda of eval.c:3252
178 in funcall_general of eval.c:3044
179 in Ffuncall of eval.c:3093
180 in Fapply of eval.c:2722
181 in funcall_subr of eval.c:3184
182 in exec_byte_code of bytecode.c:812
183 in funcall_lambda of eval.c:3252
184 in funcall_general of eval.c:3044
185 in Ffuncall of eval.c:3093
186 in Fapply of eval.c:2765
187 in apply1 of eval.c:2981
188 in read_process_output_call of process.c:6129
189 in internal_condition_case_1 of eval.c:1637
190 in read_and_dispose_of_process_output of process.c:6498
191 in read_process_output of process.c:6266
192 in wait_reading_process_output of process.c:5947
193 in sit_for of dispnew.c:6335
194 in read_char of keyboard.c:2923
195 in read_key_sequence of keyboard.c:10743
196 in command_loop_1 of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
197 in internal_condition_case of eval.c:1613
198 in command_loop_2 of keyboard.c:1168
199 in internal_catch of eval.c:1292
200 in command_loop of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
201 in recursive_edit_1 of keyboard.c:754
202 in Frecursive_edit of keyboard.c:837
203 in main of emacs.c:2631

-- 
Sean Whitton