From: Sean Whitton <spwhitton@spwhitton.name>
To: Po Lu <luangruo@yahoo.com>
Cc: 71929@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
Subject: bug#71929: 30.0.60; crash in mark_image_cache
Date: Sun, 07 Jul 2024 21:16:16 +0800 [thread overview]
Message-ID: <87ed851gwv.fsf@melete.silentflame.com> (raw)
In-Reply-To: <875xth3aym.fsf@yahoo.com> (Po Lu via's message of "Sun, 07 Jul 2024 15:41:53 +0800")
Hello,
On Sun 07 Jul 2024 at 03:41pm +08, Po Lu wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>> This is the initial frame of the daemon. It is not a GUI frame, and
>> so it should not have a valid image cache. I guess some change is
>> needed in verify_image_cache_refcount?
>
> Not quite: init_frame_faces is apparently called before the frame is
> entered into Vframe_list, so, likewise, the face cache's reference count
> should be verified before it is incremented.
>
> Sean, please retry with this patch substituted for the previous:
This time it doesn't crash until I open and close a frame, as can be
seen in the backtrace:
0 in terminate_due_to_signal of emacs.c:442
1 in emacs_abort of sysdep.c:2391
2 in verify_image_cache_refcount of /home/spwhitton/src/emacs/primary/src/frame.h:1706
3 in free_frame_faces of xfaces.c:715
4 in pgtk_free_frame_resources of pgtkterm.c:443
5 in pgtk_destroy_window of pgtkterm.c:539
6 in delete_frame of frame.c:2318
7 in Fdelete_frame of frame.c:2527
8 in funcall_subr of eval.c:3163
9 in exec_byte_code of bytecode.c:812
10 in funcall_lambda of eval.c:3252
11 in funcall_general of eval.c:3044
12 in Ffuncall of eval.c:3093
13 in Ffuncall_interactively of callint.c:250
14 in funcall_subr of eval.c:3184
15 in funcall_general of eval.c:3040
16 in Ffuncall of eval.c:3093
17 in Fcall_interactively of callint.c:789
18 in funcall_subr of eval.c:3165
19 in exec_byte_code of bytecode.c:812
20 in funcall_lambda of eval.c:3252
21 in funcall_general of eval.c:3044
22 in Ffuncall of eval.c:3093
23 in read_char of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
24 in read_key_sequence of keyboard.c:10743
25 in command_loop_1 of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
26 in internal_condition_case of eval.c:1613
27 in command_loop_2 of keyboard.c:1168
28 in internal_catch of eval.c:1292
29 in command_loop of /home/spwhitton/src/emacs/primary/src/lisp.h:1178
30 in recursive_edit_1 of keyboard.c:754
31 in Frecursive_edit of keyboard.c:837
32 in main of emacs.c:2631
(gdb) p expected
$3 = 0
(gdb) p c
$4 = (struct image_cache *) 0x555557f65370
(gdb) p c->refcount
$5 = 1
(gdb) set $cons = Vframe_list
(gdb) while $cons
>xgetptr $cons
>p ((struct Lisp_Cons *) $ptr)->u.s.car
>xframe
>p *$
>xgetptr $cons
>set $cons = ((struct Lisp_Cons *) $ptr)->u.s.u.cdr
>end
$6 = XIL(0x555555f3dfd5)
$7 = (struct frame *) 0x555555f3dfd0
"F1"
$8 = {
header = {
size = 4611686018595352602
},
name = XIL(0x55555587c944),
icon_name = XIL(0),
title = XIL(0),
parent_frame = XIL(0),
last_mouse_device = XIL(0),
focus_frame = XIL(0),
root_window = XIL(0x555555f3e225),
selected_window = XIL(0x555555f3e225),
old_selected_window = XIL(0x555555f3e225),
minibuffer_window = XIL(0x555555f3e4cd),
param_alist = XIL(0x555557a23c73),
scroll_bars = XIL(0),
condemned_scroll_bars = XIL(0),
menu_bar_items = XIL(0x555558f8b705),
face_hash_table = XIL(0x555555f3e775),
menu_bar_vector = XIL(0),
buffer_predicate = XIL(0),
buffer_list = XIL(0x55555934f053),
buried_buffer_list = XIL(0),
tab_bar_window = XIL(0),
desired_tab_bar_string = XIL(0),
current_tab_bar_string = XIL(0),
tool_bar_position = XIL(0x11d00),
font_data = XIL(0),
tab_bar_items = XIL(0),
tool_bar_items = XIL(0),
face_cache = 0x555555f741d0,
image_cache = 0x0,
last_tab_bar_item = -1,
menu_bar_items_used = 0,
current_pool = 0x555555f3f4b0,
desired_pool = 0x555555f3f490,
desired_matrix = 0x555555f3f4d0,
current_matrix = 0x555555f3f740,
glyphs_initialized_p = true,
resized_p = false,
default_face_done_p = false,
already_hscrolled_p = false,
updated_p = false,
minimize_tab_bar_window_p = false,
external_tool_bar = false,
fonts_changed = false,
cursor_type_changed = false,
redisplay = true,
external_menu_bar = false,
visible = 1,
iconified = false,
garbaged = false,
wants_modeline = true,
auto_raise = false,
auto_lower = false,
no_split = false,
explicit_name = false,
window_change = false,
window_state_change = false,
mouse_moved = false,
pointer_invisible = false,
frozen_window_starts = false,
output_method = output_initial,
tooltip = false,
want_fullscreen = FULLSCREEN_NONE,
vertical_scroll_bar_type = vertical_scroll_bar_none,
horizontal_scroll_bars = false,
undecorated = false,
override_redirect = false,
skip_taskbar = false,
no_focus_on_map = false,
no_accept_focus = false,
z_group = z_group_none,
no_special_glyphs = false,
can_set_window_size = true,
after_make_frame = true,
tab_bar_redisplayed = false,
tab_bar_resized = false,
tool_bar_redisplayed = false,
tool_bar_resized = false,
inhibit_horizontal_resize = false,
inhibit_vertical_resize = false,
face_change = false,
inhibit_clear_image_cache = false,
new_size_p = false,
was_invisible = false,
select_mini_window_flag = false,
change_stamp = 7,
number_of_windows = 2,
tab_bar_lines = 0,
tab_bar_height = 0,
n_tab_bar_rows = 0,
n_tab_bar_items = 0,
tool_bar_lines = 0,
tool_bar_height = 0,
n_tool_bar_rows = 0,
n_tool_bar_items = 0,
decode_mode_spec_buffer = 0x555555f3f340 "",
insert_line_cost = 0x0,
delete_line_cost = 0x0,
insert_n_lines_cost = 0x0,
delete_n_lines_cost = 0x0,
text_cols = 80,
text_lines = 24,
text_width = 80,
text_height = 24,
total_cols = 80,
total_lines = 25,
pixel_width = 80,
pixel_height = 25,
new_width = -1,
new_height = -1,
left_pos = 0,
top_pos = 0,
win_gravity = 0,
size_hint_flags = 0,
border_width = 0,
child_frame_border_width = -1,
internal_border_width = 0,
right_divider_width = 0,
bottom_divider_width = 0,
left_fringe_width = 0,
right_fringe_width = 0,
fringe_cols = 0,
menu_bar_lines = 1,
menu_bar_height = 1,
column_width = 1,
line_height = 1,
terminal = 0x555555f3ddb0,
output_data = {
tty = 0x0,
x = 0x0,
w32 = 0x0,
ns = 0x0,
pgtk = 0x0,
haiku = 0x0,
android = 0x0
},
font_driver_list = 0x0,
desired_cursor = FILLED_BOX_CURSOR,
cursor_width = 0,
blink_off_cursor = FILLED_BOX_CURSOR,
blink_off_cursor_width = 0,
config_scroll_bar_width = 0,
config_scroll_bar_cols = 0,
config_scroll_bar_height = 0,
config_scroll_bar_lines = 0,
cost_calculation_baud_rate = 0,
alpha = {0, 0},
alpha_background = 0,
gamma = 0,
extra_line_spacing = 0,
background_pixel = 18446744073709551613,
foreground_pixel = 18446744073709551614
}
--
Sean Whitton
next prev parent reply other threads:[~2024-07-07 13:16 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-04 2:33 bug#71929: 30.0.60; crash in mark_image_cache Sean Whitton
2024-07-04 2:44 ` Sean Whitton
2024-07-04 5:53 ` Eli Zaretskii
2024-07-04 6:03 ` Eli Zaretskii
2024-07-04 6:17 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-04 6:42 ` Sean Whitton
2024-07-04 6:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-04 9:56 ` Sean Whitton
2024-07-04 12:28 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 7:52 ` Sean Whitton
2024-07-04 7:40 ` Eli Zaretskii
2024-07-04 9:57 ` Sean Whitton
2024-07-04 12:48 ` Eli Zaretskii
2024-07-05 0:13 ` Sean Whitton
2024-07-05 6:27 ` Eli Zaretskii
2024-07-05 6:41 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 7:37 ` Eli Zaretskii
2024-07-05 9:36 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 11:10 ` Eli Zaretskii
2024-07-05 11:40 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 12:46 ` Sean Whitton
2024-07-06 2:41 ` Sean Whitton
2024-07-06 6:08 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 2:40 ` Sean Whitton
2024-07-07 2:43 ` Sean Whitton
2024-07-07 2:46 ` Sean Whitton
2024-07-07 4:04 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 4:54 ` Sean Whitton
2024-07-07 7:08 ` Eli Zaretskii
2024-07-07 7:41 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 13:16 ` Sean Whitton [this message]
2024-07-07 13:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 14:45 ` Sean Whitton
2024-07-09 5:48 ` Sean Whitton
2024-07-09 11:37 ` Eli Zaretskii
2024-07-10 1:12 ` Sean Whitton
2024-07-09 12:13 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 13:44 ` Sean Whitton
2024-07-09 14:03 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 14:18 ` Eli Zaretskii
2024-07-09 15:02 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 15:45 ` Eli Zaretskii
2024-07-10 1:12 ` Sean Whitton
2024-07-24 13:31 ` Basil L. Contovounesios
2024-07-24 13:38 ` Eli Zaretskii
2024-07-24 14:10 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-06 6:40 ` Eli Zaretskii
2024-07-07 2:39 ` Sean Whitton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ed851gwv.fsf@melete.silentflame.com \
--to=spwhitton@spwhitton.name \
--cc=71929@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=luangruo@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.