[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 29.0.50 master freeze on macOS
From: |
Alexander Adolf |
Subject: |
Re: 29.0.50 master freeze on macOS |
Date: |
Tue, 19 Jul 2022 17:27:14 +0200 |
Hello Eli,
Eli Zaretskii <eliz@gnu.org> writes:
> [...]
> Please follow the instructions in etc/DEBUG under "If the symptom of
> the bug is that Emacs fails to respond", to establish where Emacs
> infloops.
Some more findings based on that guidance (for which thanks, btw):
It loops in face_inherited_attr(). Here is the call stack:
#0 0x00000001018f32db in face_inherited_attr at
/Users/alexanderadolf/Projects/emacs/master/src/xfaces.c:2335
#1 0x00000001018f2297 in merge_named_face at
/Users/alexanderadolf/Projects/emacs/master/src/xfaces.c:2379
#2 0x00000001018ee57d in merge_face_ref at
/Users/alexanderadolf/Projects/emacs/master/src/xfaces.c:2866
#3 0x00000001018f169a in face_at_buffer_position at
/Users/alexanderadolf/Projects/emacs/master/src/xfaces.c:6644
#4 0x0000000101866526 in face_at_pos at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:4425
#5 0x000000010186c47a in extend_face_to_end_of_line at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:22840
#6 0x0000000101849164 in display_line at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:24780
#7 0x0000000101846fb9 in try_window at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:20203
#8 0x0000000101873ef7 in redisplay_window at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:19610
#9 0x00000001018708e6 in redisplay_window_0 at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:17188
#10 0x000000010199042b in internal_condition_case_1 at
/Users/alexanderadolf/Projects/emacs/master/src/eval.c:1509
#11 0x000000010186ff75 in redisplay_windows at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:17158
#12 0x000000010186ffaa in redisplay_windows at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:17152
#13 0x00000001018407fc in redisplay_internal at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:16608
#14 0x0000000101846115 in redisplay at
/Users/alexanderadolf/Projects/emacs/master/src/xdisp.c:15812
#15 0x00000001018fc0e5 in read_char at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:2587
#16 0x00000001018f945b in read_key_sequence at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:9984
#17 0x00000001018f74bc in command_loop_1 at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:1382
#18 0x00000001019903a7 in internal_condition_case at
/Users/alexanderadolf/Projects/emacs/master/src/eval.c:1485
#19 0x00000001018f70ae in command_loop_2 at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:1132
#20 0x000000010198fc61 in internal_catch at
/Users/alexanderadolf/Projects/emacs/master/src/eval.c:1208
#21 0x0000000101a83d78 in recursive_edit_1.cold.1 at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:1110
#22 0x00000001018f695d in command_loop [inlined] at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:1107
#23 0x00000001018f6958 in recursive_edit_1 at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:719
#24 0x00000001018f6ad3 in Frecursive_edit at
/Users/alexanderadolf/Projects/emacs/master/src/keyboard.c:802
#25 0x00000001018f5a81 in main at
/Users/alexanderadolf/Projects/emacs/master/src/emacs.c:2517
#26 0x00007fff20875f3d in start ()
In face_inherited_attr(), variable values were:
w window * NULL
f frame * NULL
attrs Lisp_Object * NULL
attr_idx lface_attribute_index LFACE_EXTEND_INDEX
named_merge_points named_merge_point * 0x7ffeee3e9018
0x00007ffeee3e9018
inherited_attrs Lisp_Object [20]
attr_val Lisp_Object 0xf3f0 0x000000000000f3f0
Inside the while() loop, the if (CONSP (parent_face)) fails, and it
executes the else branch. From there, it calls
get_lface_attributes (struct window *w,
struct frame *f, Lisp_Object face_name,
Lisp_Object attrs[LFACE_VECTOR_SIZE], bool signal_p,
struct named_merge_point *named_merge_points)
which executes the “default case, no remapping” path.
Interestingly, the window and frame pointers are NULL in the context of
face_inherited_attr() only. I.e. in both the function that calls it
(merge_named_face()), and in the function called by it
(get_lface_attributes()), the pointers have the same, non-NULL value.
Hope this helps? If you want me to look into more specific things next
time it happens, please don't hesitate to drop me a note.
Many thanks and looking forward to your thoughts,
--alexander
- 29.0.50 master freeze on macOS, Alexander Adolf, 2022/07/14
- Re: 29.0.50 master freeze on macOS, Eli Zaretskii, 2022/07/14
- Re: 29.0.50 master freeze on macOS, Alexander Adolf, 2022/07/14
- Re: 29.0.50 master freeze on macOS, Alexander Adolf, 2022/07/15
- Re: 29.0.50 master freeze on macOS, Eli Zaretskii, 2022/07/15
- Re: 29.0.50 master freeze on macOS,
Alexander Adolf <=
- Re: 29.0.50 master freeze on macOS, Alexander Adolf, 2022/07/19
- Re: 29.0.50 master freeze on macOS, Eli Zaretskii, 2022/07/19
- Re: 29.0.50 master freeze on macOS, Alexander Adolf, 2022/07/25
- Re: 29.0.50 master freeze on macOS, Eli Zaretskii, 2022/07/25