Subject: bug#21428: 24.5; Crash of emacs on OS X, installed via homebrew cask

From: Rainer M Krug <[email-masked]>
Date: Wed, 23 Sep 2015 10:58:19 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Rainer M Krug <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Mon, 21 Sep 2015 15:27:57 +0200
>> 
>> I am at the moment compiling with the above mentioned command
>> 
>> ,----
>> | CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure --enable-checking
>> `----
>> 
>> but I can compile anytime again.
>
> This looks fine to me.  When it finishes building, run it under GDB
> and wait for the problem to happen, or make it happen if you can.
> Then show the backtrace, and let's take it from there.
>
> Thanks.

And here is the next one:

,----
| xdisp.c:24330: Emacs fatal error: assertion failed: face != NULL
| Fatal error 6: Abort trap
| Program received signal SIGABRT, Aborted.
| 0x00007fff89f08c82 in __kill ()
| (gdb) bt
| #0  0x00007fff89f08c82 in __kill ()
| #1  0x0000000100179390 in terminate_due_to_signal (sig=6, backtrace_limit=40) at emacs.c:397
| #2  0x00000001001b0fe3 in emacs_abort () at sysdep.c:2219
| #3  0x000000010033d2f8 in ns_term_shutdown (sig=6) at nsterm.m:4599
| #4  0x0000000100179683 in shut_down_emacs (sig=6, stuff=0) at emacs.c:2038
| #5  0x000000010017932b in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:381
| #6  0x00000001002256eb in die (msg=0x1003b67ea "face != NULL", file=0x1003b24d0 "xdisp.c", line=24330) at alloc.c:6951
| #7  0x0000000100063797 in get_glyph_face_and_encoding (f=0x1018371a0, glyph=0x11c8687e0, char2b=0x7fff5fbfb3e0) at xdisp.c:24330
| #8  0x00000001000b5ffd in fill_glyph_string (s=0x7fff5fbfb410, face_id=44, start=10, end=30, overlaps=0) at xdisp.c:24555
| #9  0x000000010006dda9 in draw_glyphs (w=0x10181b030, x=88, row=0x103eee000, area=TEXT_AREA, start=0, end=30, hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:25222
| #10 0x000000010006d6d1 in x_write_glyphs (w=0x10181b030, updated_row=0x103eee000, start=0x11c868600, updated_area=TEXT_AREA, len=30) at xdisp.c:27256
| #11 0x0000000100012618 in update_text_area (w=0x10181b030, updated_row=0x103eee000, vpos=16) at dispnew.c:3611
| #12 0x00000001000101d2 in update_window_line (w=0x10181b030, vpos=16, mouse_face_overwritten_p=0x7fff5fbfbdc2) at dispnew.c:3854
| #13 0x0000000100008122 in update_window (w=0x10181b030, force_p=true) at dispnew.c:3477
| #14 0x0000000100006f2f in update_window_tree (w=0x10181b030, force_p=true) at dispnew.c:3219
| #15 0x0000000100006edd in update_window_tree (w=0x101f58c68, force_p=true) at dispnew.c:3217
| #16 0x0000000100006c0b in update_frame (f=0x1018371a0, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3108
| #17 0x0000000100052829 in redisplay_internal () at xdisp.c:13812
| #18 0x0000000100054349 in redisplay () at xdisp.c:13056
| #19 0x0000000100184ac9 in read_char (commandflag=1, map=4819682131, prev_event=0, used_mouse_menu=0x7fff5fbfefb7, end_time=0x0) at keyboard.c:2465
| #20 0x000000010017fa29 in read_key_sequence (keybuf=0x7fff5fbff2f0, bufsize=30, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9030
| #21 0x000000010017e326 in command_loop_1 () at keyboard.c:1348
| #22 0x0000000100260706 in internal_condition_case (bfun=0x10017dd30 <command_loop_1>, handlers=17616, hfun=0x1001995a0 <cmd_error>) at eval.c:1309
| #23 0x000000010019949c in command_loop_2 (ignore=0) at keyboard.c:1088
| #24 0x000000010025f7ce in internal_catch (tag=42768, func=0x100199470 <command_loop_2>, arg=0) at eval.c:1073
| #25 0x000000010017d070 in command_loop () at keyboard.c:1067
| #26 0x000000010017ceb2 in recursive_edit_1 () at keyboard.c:673
| #27 0x000000010017d2a3 in Frecursive_edit () at keyboard.c:744
| #28 0x000000010017ae4a in main (argc=1, argv=0x7fff5fbff8f8) at emacs.c:1643
| (gdb) bt full
| #0  0x00007fff89f08c82 in __kill ()
| No symbol table info available.
| #1  0x0000000100179390 in terminate_due_to_signal (sig=6, backtrace_limit=40) at emacs.c:397
| No locals.
| #2  0x00000001001b0fe3 in emacs_abort () at sysdep.c:2219
| No locals.
| #3  0x000000010033d2f8 in ns_term_shutdown (sig=6) at nsterm.m:4599
| No locals.
| #4  0x0000000100179683 in shut_down_emacs (sig=6, stuff=0) at emacs.c:2038
| 	format = 0x10039bfa0 "Fatal error %d: "
| #5  0x000000010017932b in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:381
| No locals.
| #6  0x00000001002256eb in die (msg=0x1003b67ea "face != NULL", file=0x1003b24d0 "xdisp.c", line=24330) at alloc.c:6951
| No locals.
| #7  0x0000000100063797 in get_glyph_face_and_encoding (f=0x1018371a0, glyph=0x11c8687e0, char2b=0x7fff5fbfb3e0) at xdisp.c:24330
| 	face = (struct face *) 0x0
| 	code = 0
| #8  0x00000001000b5ffd in fill_glyph_string (s=0x7fff5fbfb410, face_id=44, start=10, end=30, overlaps=0) at xdisp.c:24555
| 	glyph = (struct glyph *) 0x11c8687e0
| 	last = (struct glyph *) 0x11c868ba0
| 	voffset = 0
| 	glyph_not_available_p = false
| #9  0x000000010006dda9 in draw_glyphs (w=0x10181b030, x=88, row=0x103eee000, area=TEXT_AREA, start=0, end=30, hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:25222
| 	face_id = 44
| 	char2b = (XChar2b *) 0x7fff5fbfb3e0
| 	first_glyph = (struct glyph *) 0x11c8687e0
| 	head = (struct glyph_string *) 0x7fff5fbfb6c0
| 	tail = (struct glyph_string *) 0x7fff5fbfb410
| 	s = (struct glyph_string *) 0x7fff5fbfb410
| 	clip_head = (struct glyph_string *) 0x0
| 	clip_tail = (struct glyph_string *) 0x0
| 	i = 10
| 	j = 1521915
| 	x_reached = 1
| 	last_x = 1258
| 	area_left = 8
| 	f = (struct frame *) 0x1018371a0
| 	sa_avail = 16240
| 	sa_count = 5
| 	sa_must_free = false
| #10 0x000000010006d6d1 in x_write_glyphs (w=0x10181b030, updated_row=0x103eee000, start=0x11c868600, updated_area=TEXT_AREA, len=30) at xdisp.c:27256
| 	x = 16778466
| 	hpos = 0
| 	chpos = 20
| #11 0x0000000100012618 in update_text_area (w=0x10181b030, updated_row=0x103eee000, vpos=16) at dispnew.c:3611
| 	current_row = (struct glyph_row *) 0x11cab2000
| 	desired_row = (struct glyph_row *) 0x103eee000
| 	rif = (struct redisplay_interface *) 0x1007d8e98
| 	changed_p = false
| #12 0x00000001000101d2 in update_window_line (w=0x10181b030, vpos=16, mouse_face_overwritten_p=0x7fff5fbfbdc2) at dispnew.c:3854
| 	current_row = (struct glyph_row *) 0x11cab2000
| 	desired_row = (struct glyph_row *) 0x103eee000
| 	rif = (struct redisplay_interface *) 0x1007d8e98
| 	changed_p = false
| #13 0x0000000100008122 in update_window (w=0x10181b030, force_p=true) at dispnew.c:3477
| 	vpos = 16
| 	i = 31360
| 	end = (struct glyph_row *) 0x103ef5100
| 	mode_line_row = (struct glyph_row *) 0x103ef5100
| 	header_line_row = (struct glyph_row *) 0x103eed000
| 	changed_p = true
| 	mouse_face_overwritten_p = false
| 	row = (struct glyph_row *) 0x103eee000
| 	yb = 1402
| 	n_updated = 0
| 	desired_matrix = (struct glyph_matrix *) 0x1013c8780
| 	paused_p = false
| 	preempt_count = 17
| 	rif = (struct redisplay_interface *) 0x1007d8e98
| #14 0x0000000100006f2f in update_window_tree (w=0x10181b030, force_p=true) at dispnew.c:3219
| 	paused_p = false
| #15 0x0000000100006edd in update_window_tree (w=0x101f58c68, force_p=true) at dispnew.c:3217
| 	paused_p = false
| #16 0x0000000100006c0b in update_frame (f=0x1018371a0, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3108
| 	paused_p = false
| 	root_window = (struct window *) 0x101f58c68
| #17 0x0000000100052829 in redisplay_internal () at xdisp.c:13812
| 	gcscrollbars = false
| 	f = (struct frame *) 0x1018371a0
| 	w = (struct window *) 0x10181b030
| 	sw = (struct window *) 0x10181b030
| 	fr = (struct frame *) 0x1018371a0
| 	pending = false
| 	must_finish = false
| 	match_p = true
| 	tlbufpos = {
|   charpos = 31166,
|   bytepos = 31211
| }
| 	tlendpos = {
|   charpos = 250511,
|   bytepos = 250516
| }
| 	number_of_visible_frames = 1
| 	count = 2
| 	sf = (struct frame *) 0x1018371a0
| 	polling_stopped_here = true
| 	tail = 4429384371
| 	frame = 4320358821
| 	consider_all_windows_p = true
| 	update_miniwindow_p = false
| #18 0x0000000100054349 in redisplay () at xdisp.c:13056
| No locals.
| #19 0x0000000100184ac9 in read_char (commandflag=1, map=4819682131, prev_event=0, used_mouse_menu=0x7fff5fbfefb7, end_time=0x0) at keyboard.c:2465
| 	echo_current = true
| 	c = 0
| 	jmpcount = 140734799801360
| 	local_getcjmp = 0x7fff5fbfeba0
| 	save_jump = 0x7fff5fbfeb00
| 	tem = 2
| 	save = 0
| 	previous_echo_area_message = 0
| 	also_record = 0
| 	reread = false
| 	recorded = false
| 	polling_stopped_here = false
| 	orig_kboard = (struct kboard *) 0x101428d20
| #20 0x000000010017fa29 in read_key_sequence (keybuf=0x7fff5fbff2f0, bufsize=30, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9030
| 	interrupted_kboard = (KBOARD *) 0x101428d20
| 	interrupted_frame = (struct frame *) 0x1018371a0
| 	key = 140734799802480
| 	used_mouse_menu = false
| 	echo_local_start = 0
| 	last_real_key_start = 0
| 	keys_local_start = 0
| 	new_binding = 281725
| 	count = 2
| 	t = 0
| 	echo_start = 0
| 	keys_start = 0
| 	current_binding = 4819682131
| 	first_event = 0
| 	first_unbound = 31
| 	mock_input = 0
| 	fkey = {
|   parent = 4429365395,
|   map = 4429365395,
|   start = 0,
|   end = 0
| }
| 	keytran = {
|   parent = 4336943683,
|   map = 4336943683,
|   start = 0,
|   end = 0
| }
| 	indec = {
|   parent = 4429365411,
|   map = 4429365411,
|   start = 0,
|   end = 0
| }
| 	shift_translated = false
| 	delayed_switch_frame = 0
| 	original_uppercase = 0
| 	original_uppercase_position = -1
| 	dummyflag = false
| 	starting_buffer = (struct buffer *) 0x1113c3080
| 	fake_prefixed_keys = 0
| #21 0x000000010017e326 in command_loop_1 () at keyboard.c:1348
| 	cmd = 17848568
| 	keybuf = 0x7fff5fbff2f0
| 	i = 1
| 	prev_modiff = 56892
| 	prev_buffer = (struct buffer *) 0x1113c3080
| 	already_adjusted = false
| #22 0x0000000100260706 in internal_condition_case (bfun=0x10017dd30 <command_loop_1>, handlers=17616, hfun=0x1001995a0 <cmd_error>) at eval.c:1309
| 	val = 4303299704
| 	c = (struct handler *) 0x1014041e0
| #23 0x000000010019949c in command_loop_2 (ignore=0) at keyboard.c:1088
| 	val = 2
| #24 0x000000010025f7ce in internal_catch (tag=42768, func=0x100199470 <command_loop_2>, arg=0) at eval.c:1073
| 	val = 0
| 	c = (struct handler *) 0x1014040f0
| #25 0x000000010017d070 in command_loop () at keyboard.c:1067
| No locals.
| #26 0x000000010017ceb2 in recursive_edit_1 () at keyboard.c:673
| 	count = 1
| 	val = 0
| #27 0x000000010017d2a3 in Frecursive_edit () at keyboard.c:744
| 	count = 0
| 	buffer = 0
| #28 0x000000010017ae4a in main (argc=1, argv=0x7fff5fbff8f8) at emacs.c:1643
| 	dummy = 140734799806464
| 	stack_bottom_variable = 0 '\0'
| 	do_initial_setlocale = true
| 	dumping = false
| 	skip_args = 0
| 	rlim = {
|   rlim_cur = 8720000,
|   rlim_max = 67104768
| }
| 	no_loadup = false
| 	junk = 0x0
| 	dname_arg = 0x0
| 	dname_arg2 = 0x7fff5fbff870 "\001"
| 	ch_to_dir = 0x0
| 	original_pwd = 0x0
| (gdb)
`----

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      [email-masked]

Skype:      RMkrug

PGP: 0x0F52F982