GNU bug report logs - #43177
Bug: Emacs 27.1 hangs forever in `FcCharSetSubtractCount' from '/usr/lib/libfontconfig.so.1'

Previous Next

Package: emacs;

Reported by: Alexander Shukaev <emacs <at> Alexander.Shukaev.name>

Date: Thu, 3 Sep 2020 07:20:02 UTC

Severity: normal

Fixed in version 28.1

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #32 received at 43177 <at> debbugs.gnu.org (full text, mbox):

From: Alexander Shukaev <emacs <at> Alexander.Shukaev.name>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: 43177 <at> debbugs.gnu.org
Subject: Re: bug#43177: Bug: Emacs 27.1 hangs forever in
 `FcCharSetSubtractCount' from '/usr/lib/libfontconfig.so.1'
Date: Thu, 3 Sep 2020 11:40:07 +0200
On 03/09/2020 11:07, Robert Pluim wrote:
>>>>>> On Thu, 3 Sep 2020 11:02:16 +0200, Alexander Shukaev <emacs <at> Alexander.Shukaev.name> said:
> 
>      Alexander> /usr/share/fonts/TTF/AdobeBlank-Regular.ttf is owned by
>      Alexander> ttf-google-fonts-git 20171026-1
> 
> Looks like Pip's crystal ball was right, thatʼs the same font
> impicated in Bug#40733
> 
>      Alexander> I will try updating it now and see if it fixes the issue.  However,
>      Alexander> even if it does, I have a bunch of follow-up questions:
> 
>      Alexander> 1.  How to protect Emacs from having that issue again regardless of
>      Alexander> broken/out-dated fonts?  Can I somehow, for example, exclude such
>      Alexander> fonts from consideration by Emacs?
> 
>      face-ignored-fonts is a variable defined in `C source code'.
>      Its value is nil
> 
>        Probably introduced at or before Emacs version 21.1.
> 
>      Documentation:
>      List of ignored fonts.
>      Each element is a regular expression that matches names of fonts to
>      ignore.
> 
>      Alexander> 2.  Why was this font queried at all in the first place?  I don't use
>      Alexander> this font.
> 
> You donʼt use it, but fontconfig know about it, so it queries it when
> Emacs queries fontconfig for available fonts covering a certain
> codepoint.
> 
> Robert
> 

Right, so briefly testing, I think the scrolling hang is gone thanks to

(add-to-list 'face-ignored-fonts "Adobe.*Blank")

However, hang from opening certain files is still there and is also 
font-related, though with a different symptom:

Thread 1 "emacs" received signal SIGABRT, Aborted.
0x00007ffff5c0646f in poll () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff5c0646f in poll () at /usr/lib/libc.so.6
#1  0x00007ffff6e2a63b in  () at /usr/lib/libxcb.so.1
#2  0x00007ffff6e2c08f in  () at /usr/lib/libxcb.so.1
#3  0x00007ffff6e2c203 in xcb_wait_for_reply64 () at /usr/lib/libxcb.so.1
#4  0x00007ffff6e904b9 in _XReply () at /usr/lib/libX11.so.6
#5  0x00007ffff6e71e71 in  () at /usr/lib/libX11.so.6
#6  0x00007ffff6e7254e in XLoadQueryFont () at /usr/lib/libX11.so.6
#7  0x0000555555a8d875 in xfont_supported_scripts
    (display=0x555556594940, fontname=0x55556a79e428 "-misc-trirong 
medium-medium-i-normal--0-0-0-0-p-0-iso10646-1", 
props=XIL(0x7ffff27926e5), encoding=0x7ffff23ab8d0) at xfont.c:266
#8  0x0000555555a8e5eb in xfont_list_pattern (display=0x555556594940, 
pattern=0x7fffffff6450 "-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1", 
registry=XIL(0x84c0), script=XIL(0x2aaa9c470db0)) at xfont.c:441
#9  0x0000555555a8e94d in xfont_list (f=0x5555564db330, 
spec=XIL(0x7ffff2794475)) at xfont.c:486
#10 0x0000555555983724 in font_list_entities (f=0x5555564db330, 
spec=XIL(0x55556932a495)) at font.c:2794
#11 0x000055555598588c in font_find_for_lface (f=0x5555564db330, 
attrs=0x555564a499c0, spec=XIL(0x5555568e6125), c=-1) at font.c:3285
#12 0x0000555555ab4a23 in fontset_find_font 
(fontset=XIL(0x555569329a45), c=43695, face=0x555564a499c0, 
charset_id=-1, fallback=false) at fontset.c:661
#13 0x0000555555ab514f in fontset_font (fontset=XIL(0x5555568a0d45), 
c=43695, face=0x555564a499c0, id=-1) at fontset.c:783
#14 0x0000555555ab5cff in face_for_char (f=0x5555564db330, 
face=0x555564a499c0, c=43695, pos=38, object=XIL(0)) at fontset.c:997
#15 0x00005555555d0b96 in FACE_FOR_CHAR (f=0x5555564db330, 
face=0x555564a499c0, character=43695, pos=38, object=XIL(0)) at 
dispextern.h:1891
#16 0x00005555555f091a in get_next_display_element (it=0x7fffffff8040) 
at xdisp.c:7651
#17 0x0000555555626aae in display_line (it=0x7fffffff8040, 
cursor_vpos=8) at xdisp.c:23222
#18 0x0000555555617030 in try_window (window=XIL(0x5555564db575), 
pos=..., flags=1) at xdisp.c:19182
#19 0x0000555555613c67 in redisplay_window (window=XIL(0x5555564db575), 
just_this_one_p=false) at xdisp.c:18600
#20 0x000055555560aefd in redisplay_window_0 
(window=XIL(0x5555564db575)) at xdisp.c:16314
#21 0x000055555594c082 in internal_condition_case_1 (bfun=0x55555560aebb 
<redisplay_window_0>, arg=XIL(0x5555564db575), 
handlers=XIL(0x7ffff279a6f3), hfun=0x55555560ae83 <redisplay_window_error>)
    at eval.c:1380
#22 0x000055555560ae55 in redisplay_windows (window=XIL(0x5555564db575)) 
at xdisp.c:16294
#23 0x000055555560ae06 in redisplay_windows (window=XIL(0x5555629c9865)) 
at xdisp.c:16288
#24 0x000055555560978e in redisplay_internal () at xdisp.c:15762
#25 0x000055555560712f in redisplay () at xdisp.c:14989
#26 0x00005555557e20ca in read_char (commandflag=1, 
map=XIL(0x555569315a13), prev_event=XIL(0), 
used_mouse_menu=0x7fffffffd3f5, end_time=0x0) at keyboard.c:2493
#27 0x00005555557f5a94 in read_key_sequence (keybuf=0x7fffffffd5e0, 
prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, 
fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9553
#28 0x00005555557de249 in command_loop_1 () at keyboard.c:1350
#29 0x000055555594bfa5 in internal_condition_case (bfun=0x5555557ddda4 
<command_loop_1>, handlers=XIL(0x90), hfun=0x5555557dd370 <cmd_error>) 
at eval.c:1356
#30 0x00005555557dd97c in command_loop_2 (ignore=XIL(0)) at keyboard.c:1091
#31 0x000055555594b3ea in internal_catch (tag=XIL(0xd530), 
func=0x5555557dd94e <command_loop_2>, arg=XIL(0)) at eval.c:1117
#32 0x00005555557dd919 in command_loop () at keyboard.c:1070
#33 0x00005555557dce47 in recursive_edit_1 () at keyboard.c:714
#34 0x00005555557dd046 in Frecursive_edit () at keyboard.c:786
#35 0x00005555557d313e in main (argc=1, argv=0x7fffffffda68) at emacs.c:2062

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)
(gdb) f 7
#7  0x0000555555a8d875 in xfont_supported_scripts 
(display=0x555556594940, fontname=0x55556a79e428 "-misc-trirong 
medium-medium-i-normal--0-0-0-0-p-0-iso10646-1", props=XIL(0x7ffff27926e5),
    encoding=0x7ffff23ab8d0) at xfont.c:266
266	      xfont = XLoadQueryFont (display, fontname);
(gdb) pp fontname
#<INVALID_LISP_OBJECT 0x55556a79e428>
(gdb) pp fontname
#<INVALID_LISP_OBJECT 0x55556a79e428>
(gdb) p fontname
$3 = 0x55556a79e428 "-misc-trirong 
medium-medium-i-normal--0-0-0-0-p-0-iso10646-1"
(gdb)




This bug report was last modified 4 years and 249 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.