Package: emacs;
Reported by: Vinicius José Latorre <viniciusjl <at> gmail.com>
Date: Mon, 2 Mar 2020 01:55:02 UTC
Severity: normal
Tags: confirmed
Merged with 23386, 35803, 36835
Found in versions 25.0.95, 28.0.50, 24.1, 25.0.50, 24.5, 26.2, 27.0.50
Fixed in version 27.1
Done: Robert Pluim <rpluim <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Alex Gramiak <agrambot <at> gmail.com> Subject: bug#35803: closed (Re: bug#39865: 28.0.50; Emacs crash) Date: Tue, 17 Mar 2020 16:07:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report #39865: 26.2; Segfault when setting font-backend frame parameter from Xft to X on the initial frame which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 35803 <at> debbugs.gnu.org. -- 39865: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39865 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Robert Pluim <rpluim <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 39865-done <at> debbugs.gnu.org, viniciusjl <at> gmail.com Subject: Re: bug#39865: 28.0.50; Emacs crash Date: Tue, 17 Mar 2020 17:06:14 +0100>>>>> On Tue, 17 Mar 2020 17:15:59 +0200, Eli Zaretskii <eliz <at> gnu.org> said: >> From: Robert Pluim <rpluim <at> gmail.com> >> Cc: 39865 <at> debbugs.gnu.org, viniciusjl <at> gmail.com >> Date: Tue, 17 Mar 2020 11:16:34 +0100 >> >> The following has been compiled and tested on macOS, GNU/Linux, and >> MSWindows. Itʼs against emacs-27, where Iʼd prefer to put it, since >> people might start building that with Cairo enabled, which would make >> this crash more likely, but I can put it in master if you wish. Eli> SGTM, thanks. Pushed to emacs-27 as 5747a59a88 Closing the bug.
[Message part 3 (message/rfc822, inline)]
From: Alex Gramiak <agrambot <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 26.2; Segfault when setting font-backend frame parameter from Xft to X on the initial frame Date: Sun, 19 May 2019 15:25:16 -0600Recipe: 0. Use an Xft build of Emacs. 1. emacs -Q 2. (set-frame-parameter nil 'font-backend '(x)) 3. Segfault. This happens for me on both 26.2 and master. The crash only occurs on the initial frame; attempting this on other frames just results in the following error: (error "Font ‘-ADBO-Source Code Pro-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1’ is not defined") It should be noted that the other frames do otherwise switch to the Xfont backend. This also occurs with the following fonts: ‘-PfEd-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-iso10646-1’ ‘-GOOG-Noto Sans Mono-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 Here's the xbacktrace: (gdb) xbacktrace "message" (0xffffb6f8) "debug" (0xffffbe48) "modify-frame-parameters" (0xffffc588) "set-frame-parameter" (0xffffc970) "progn" (0xffffcb68) "eval" (0xffffce20) "elisp--eval-last-sexp" (0xffffd2a8) "eval-last-sexp" (0xffffd850) "funcall-interactively" (0xffffd848) "call-interactively" (0xffffdbe0) "command-execute" (0xffffe0e8) Below is a bt showing that xftfont_info->xftfont is NULL in xftfont_text_extents, which seems to be the culprit. gui_set_font_backend sets the font-backend of the frame to '(x) and calls gui_set_font, which triggers the error above. For some reason, only non-initial frames handle the error semi-correctly. The solution is likely to unwind_protect around gui_set_font in gui_set_font_backend and reset Qfont_backend if an error occurs. It might help for the future to figure out the exact issue here, though. (gdb) sel 1 (gdb) p xftfont_info->display $1 = (Display *) 0x555555d78c30 (gdb) p xftfont_info->xftfont $2 = (XftFont *) 0x0 (gdb) bt #0 0x00007ffff6b5a160 in XftCharIndex () at /usr/lib/libXft.so.2 #1 0x000055555583cd8d in xftfont_encode_char (font=0x555556019290, c=92) at xftfont.c:532 #2 0x00005555555fdf98 in get_char_glyph_code (c=92, font=0x555556019290, char2b=0x7fffffff8a8e) at xdisp.c:26097 #3 0x0000555555607a29 in gui_produce_glyphs (it=0x7fffffff8c20) at xdisp.c:28475 #4 0x000055555560657e in produce_special_glyphs (it=0x7fffffffa020, what=IT_CONTINUATION) at xdisp.c:28106 #5 0x00005555555ba649 in init_iterator (it=0x7fffffffa020, w=0x555555ff5a20, charpos=1, bytepos=1, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2958 #6 0x00005555555d3865 in resize_mini_window (w=0x555555ff5a20, exact_p=false) at xdisp.c:11323 #7 0x00005555555d330a in display_echo_area_1 (a1=93825003379232, a2=0x0) at xdisp.c:11211 #8 0x00005555555d2a46 in with_echo_area_buffer (w=0x555555ff5a20, which=0, fn=0x5555555d32d4 <display_echo_area_1>, a1=93825003379232, a2=0x0) at xdisp.c:10981 #9 0x00005555555d327d in display_echo_area (w=0x555555ff5a20) at xdisp.c:11177 #10 0x00005555555d44f3 in echo_area_display (update_frame_p=true) at xdisp.c:11664 #11 0x00005555555d1f18 in message3_nolog (m=0x5555565b0e34) at xdisp.c:10683 #12 0x00005555555d1c4e in message3 (m=0x5555565b0e34) at xdisp.c:10612 #13 0x0000555555794de7 in Fmessage (nargs=1, args=0x7fffffffb6f8) at editfns.c:2891 #14 0x00005555557a284d in funcall_subr (subr=0x555555c1aae0 <Smessage>, numargs=1, args=0x7fffffffb6f8) at eval.c:2856 #15 0x00005555557a2509 in Ffuncall (nargs=2, args=0x7fffffffb6f0) at eval.c:2803 #16 0x00005555557ee00a in exec_byte_code (bytestr=0x5555565b0d74, vector=0x5555564c7c25, maxdepth=0xa6, args_template=0x202, nargs=2, args=0x7fffffffbe48) at bytecode.c:633 #17 0x00005555557a2fb3 in funcall_lambda (fun=0x5555565bdb05, nargs=2, arg_vector=0x7fffffffbe48) at eval.c:2998 #18 0x00005555557a254d in Ffuncall (nargs=3, args=0x7fffffffbe40) at eval.c:2805 #19 0x00005555557a177c in Fapply (nargs=2, args=0x7fffffffbef0) at eval.c:2425 #20 0x00005555557a1d2f in apply1 (fn=0x49b0, arg=0x555555d60de3) at eval.c:2641 #21 0x000055555579cba7 in call_debugger (arg=0x555555d60de3) at eval.c:340 #22 0x000055555579fa2a in maybe_call_debugger (conditions=0x7ffff0fc06cb, sig=0x56d0, data=0x555555d60e53) at eval.c:1827 #23 0x000055555579f4fb in signal_or_quit (error_symbol=0x56d0, data=0x555555d60e53, keyboard_quit=false) at eval.c:1663 #24 0x000055555579f199 in Fsignal (error_symbol=0x56d0, data=0x555555d60e53) at eval.c:1565 #25 0x00005555556e397e in xsignal (error_symbol=0x56d0, data=0x555555d60e53) at lisp.h:4083 #26 0x000055555579f684 in xsignal1 (error_symbol=0x56d0, arg=0x55555657f574) at eval.c:1704 #27 0x000055555579fc3d in verror (m=0x555555871dd9 "Font `%s' is not defined", ap=0x7fffffffc0f0) at eval.c:1884 #28 0x000055555579fcee in error (m=0x555555871dd9 "Font `%s' is not defined") at eval.c:1896 #29 0x00005555555abad2 in gui_set_font (f=0x555555ff5570, arg=0x555555ff6854, oldval=0x0) at frame.c:4390 #30 0x00005555555ac0a5 in gui_set_font_backend (f=0x555555ff5570, new_value=0x555555d61033, old_value=0x555556051983) at frame.c:4524 #31 0x00005555555aa497 in gui_set_frame_parameters (f=0x555555ff5570, alist=0x0) at frame.c:4044 #32 0x00005555555a8a25 in Fmodify_frame_parameters (frame=0x555555ff5575, alist=0x555555d61043) at frame.c:3271 #33 0x00005555557a296c in funcall_subr (subr=0x555555c0dde0 <Smodify_frame_parameters>, numargs=2, args=0x7fffffffc588) at eval.c:2878 #34 0x00005555557a2509 in Ffuncall (nargs=3, args=0x7fffffffc580) at eval.c:2803 #35 0x00005555557ee00a in exec_byte_code (bytestr=0x7ffff0f570c4, vector=0x7ffff0f57065, maxdepth=0x1e, args_template=0xc0e, nargs=3, args=0x7fffffffc988) at bytecode.c:633 #36 0x00005555557a2fb3 in funcall_lambda (fun=0x7ffff0f57035, nargs=3, arg_vector=0x7fffffffc970) at eval.c:2998 #37 0x00005555557a2d17 in apply_lambda (fun=0x7ffff0f57035, args=0x555555d61153, count=15) at eval.c:2935 #38 0x00005555557a1088 in eval_sub (form=0x555555d61173) at eval.c:2319 #39 0x000055555579ce96 in Fprogn (body=0x0) at eval.c:463 #40 0x00005555557a0ab5 in eval_sub (form=0x555555d610c3) at eval.c:2227 #41 0x00005555557a04cc in Feval (form=0x555555d610c3, lexical=0xc8d0) at eval.c:2103 #42 0x00005555557a296c in funcall_subr (subr=0x555555c1b520 <Seval>, numargs=2, args=0x7fffffffce20) at eval.c:2878 #43 0x00005555557a2509 in Ffuncall (nargs=3, args=0x7fffffffce18) at eval.c:2803 #44 0x00005555557ee00a in exec_byte_code (bytestr=0x7ffff11034dc, vector=0x7ffff1102c3d, maxdepth=0x42, args_template=0x406, nargs=1, args=0x7fffffffd2b0) at bytecode.c:633 #45 0x00005555557a2fb3 in funcall_lambda (fun=0x7ffff1102c0d, nargs=1, arg_vector=0x7fffffffd2a8) at eval.c:2998 #46 0x00005555557a254d in Ffuncall (nargs=2, args=0x7fffffffd2a0) at eval.c:2805 #47 0x00005555557ee00a in exec_byte_code (bytestr=0x7ffff110362c, vector=0x7ffff1102bb5, maxdepth=0x12, args_template=0x406, nargs=1, args=0x7fffffffd858) at bytecode.c:633 #48 0x00005555557a2fb3 in funcall_lambda (fun=0x7ffff1102b7d, nargs=1, arg_vector=0x7fffffffd850) at eval.c:2998 #49 0x00005555557a254d in Ffuncall (nargs=2, args=0x7fffffffd848) at eval.c:2805 #50 0x0000555555799d44 in Ffuncall_interactively (nargs=2, args=0x7fffffffd848) at callint.c:253 #51 0x00005555557a284d in funcall_subr (subr=0x555555c1ad60 <Sfuncall_interactively>, numargs=2, args=0x7fffffffd848) at eval.c:2856 #52 0x00005555557a2509 in Ffuncall (nargs=3, args=0x7fffffffd840) at eval.c:2803 #53 0x000055555579c24d in Fcall_interactively (function=0x2aaa9b471a08, record_flag=0x0, keys=0x7ffff14c94bd) at callint.c:781 #54 0x00005555557a299e in funcall_subr (subr=0x555555c1ada0 <Scall_interactively>, numargs=3, args=0x7fffffffdbe0) at eval.c:2881 #55 0x00005555557a2509 in Ffuncall (nargs=4, args=0x7fffffffdbd8) at eval.c:2803 #56 0x00005555557ee00a in exec_byte_code (bytestr=0x7ffff105bd84, vector=0x7ffff105b915, maxdepth=0x36, args_template=0x1006, nargs=1, args=0x7fffffffe0f0) at bytecode.c:633 #57 0x00005555557a2fb3 in funcall_lambda (fun=0x7ffff105b8e5, nargs=1, arg_vector=0x7fffffffe0e8) at eval.c:2998 #58 0x00005555557a254d in Ffuncall (nargs=2, args=0x7fffffffe0e0) at eval.c:2805 #59 0x00005555557a1da4 in call1 (fn=0x41a0, arg1=0x2aaa9b471a08) at eval.c:2656 #60 0x00005555556ebd2b in command_loop_1 () at keyboard.c:1461 #61 0x000055555579ec15 in internal_condition_case (bfun=0x5555556eb4ff <command_loop_1>, handlers=0x56d0, hfun=0x5555556eacb4 <cmd_error>) at eval.c:1352
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.