bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#20890: master 1233bcb: Work around GC+Cairo bug


From: Robert Pluim
Subject: bug#20890: master 1233bcb: Work around GC+Cairo bug
Date: Wed, 04 Apr 2018 10:52:42 +0200

Eli Zaretskii <address@hidden> writes:

>> From: Robert Pluim <address@hidden>
>> Date: Wed, 04 Apr 2018 00:14:20 +0200
>> Cc: Paul Eggert <address@hidden>
>> 
>> >     Work around GC+Cairo bug
>> >     
>> >     Workaround suggested by Robert Pluim (Bug#20890#13).
>> >     * src/ftfont.c (ftfont_close) [USE_CAIRO]:
>> >     Do nothing if GC is in progress.
>> 
>> And whilst this reduces the frequency of the issue, of course it
>> doesnʼt eliminate it. Currently Iʼve deployed the following
>> sledgehammer, but we really need something better:
>
> Sorry, I don't understand: are you saying that you still get crashes
> inside ftfont_close, after the above commit?  If so, can you please
> show the backtrace?

Yes.

> (Let's please continue discussing this in the bug report, not here.)

Moved there. Backtrace:

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x00007ffff1f87c68 in FT_List_Find () from 
/usr/lib/x86_64-linux-gnu/libfreetype.so.6
(gdb) bt
#0  0x00007ffff1f87c68 in FT_List_Find () from 
/usr/lib/x86_64-linux-gnu/libfreetype.so.6
#1  0x00007ffff1f87ecf in FT_Done_Size () from 
/usr/lib/x86_64-linux-gnu/libfreetype.so.6
#2  0x00000000005d5484 in ftcrfont_close (font=0x35fdf60) at ftcrfont.c:176
#3  0x00000000005502db in cleanup_vector (address@hidden) at alloc.c:3194
#4  0x000000000055134a in sweep_vectors () at alloc.c:3241
#5  0x00000000005556f7 in gc_sweep () at alloc.c:7191
#6  garbage_collect_1 (end=<optimized out>) at alloc.c:6030
#7  Fgarbage_collect () at alloc.c:6162
#8  0x000000000056df29 in maybe_gc () at lisp.h:4839
#9  Ffuncall (nargs=4, address@hidden) at eval.c:2803
#10 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8dd84d), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#11 0x000000000056ddd0 in funcall_lambda (fun=make_number(35184372082330), 
nargs=9295952, address@hidden, 
    arg_vector=0x7fffffff9a28, address@hidden) at eval.c:3022
#12 0x000000000056e053 in Ffuncall (nargs=6, address@hidden) at eval.c:2835
#13 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8dd8fd), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#14 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffff9c64), 
nargs=9296128, address@hidden, 
    arg_vector=0x7fffffff9c10, address@hidden) at eval.c:3022
#15 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#16 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8dd99d), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#17 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffff9e27), 
nargs=9296288, address@hidden, 
    arg_vector=0x7fffffff9de8, address@hidden) at eval.c:3022
#18 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#19 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8e163d), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#20 0x000000000056ddd0 in funcall_lambda (fun=make_number(35184372082708), 
nargs=9311808, address@hidden, 
    arg_vector=0x7fffffff9fb8, address@hidden) at eval.c:3022
#21 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#22 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x971615), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#23 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffa395), 
nargs=9901592, address@hidden, 
    arg_vector=0x7fffffffa238, address@hidden) at eval.c:3022
#24 0x000000000056e053 in Ffuncall (address@hidden, address@hidden) at 
eval.c:2835
#25 0x000000000056e1ba in call1 (address@hidden(0x63c0), 
address@hidden(0x3705335)) at eval.c:2672
#26 0x00000000004c08be in update_face_from_frame_parameter (address@hidden, 
address@hidden(0x2be0), 
    address@hidden(0x35eabf4)) at xfaces.c:3256
#27 0x00000000004d959d in x_set_background_color (f=0x3705330, 
arg=XIL(0x35eabf4), oldval=<optimized out>)
    at xfns.c:1107
#28 0x000000000042bf18 in x_set_frame_parameters (address@hidden, 
address@hidden(0xc5b653))
    at frame.c:3919
#29 0x000000000042c77c in Fmodify_frame_parameters (address@hidden(0x3705335), 
alist=XIL(0xc5b653))
    at frame.c:3183
#30 0x00000000004bc61f in Finternal_set_lisp_face_attribute (face=XIL(0x4770), 
attr=XIL(0x2a0), value=XIL(0x35eabf4), 
    frame=XIL(0x3705335)) at xfaces.c:3215
#31 0x000000000056e0f6 in Ffuncall (nargs=<optimized out>, address@hidden) at 
eval.c:2821
#32 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8de15d), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#33 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffa8d7), 
nargs=9298272, address@hidden, 
    arg_vector=0x7fffffffa7e0, address@hidden) at eval.c:3022
#34 0x000000000056e053 in Ffuncall (address@hidden, args=0x7fffffffaa30) at 
eval.c:2835
#35 0x000000000056fbc0 in Fapply (nargs=<optimized out>, args=0x7fffffffac40) 
at eval.c:2441
#36 0x000000000056e0f6 in Ffuncall (nargs=<optimized out>, address@hidden) at 
eval.c:2821
#37 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8e16fd), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#38 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffac88), 
nargs=9312000, address@hidden, 
    arg_vector=0x7fffffffac38, address@hidden) at eval.c:3022
#39 0x000000000056e053 in Ffuncall (nargs=4, address@hidden) at eval.c:2835
#40 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8e163d), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#41 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffae77), 
nargs=9311808, address@hidden, 
    arg_vector=0x7fffffffae18, address@hidden) at eval.c:3022
#42 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#43 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8e27dd), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#44 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffb079), 
nargs=9316320, address@hidden, 
    arg_vector=0x7fffffffb028, address@hidden) at eval.c:3022
#45 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#46 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x8e25fd), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#47 0x000000000056ddd0 in funcall_lambda (fun=make_number(35184372083889), 
nargs=9315840, address@hidden, 
    arg_vector=0x7fffffffb238, address@hidden) at eval.c:3022
#48 0x000000000056e053 in Ffuncall (nargs=2, address@hidden) at eval.c:2835
#49 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0xcbbb35), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#50 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffb453), 
nargs=13351736, address@hidden, 
    arg_vector=0x7fffffffb440, address@hidden) at eval.c:3022
#51 0x000000000056e053 in Ffuncall (address@hidden, address@hidden) at 
eval.c:2835
#52 0x000000000056fda3 in Fapply (nargs=2, args=0x7fffffffb680) at eval.c:2398
#53 0x000000000056e0f6 in Ffuncall (nargs=<optimized out>, address@hidden) at 
eval.c:2821
#54 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x12ca355), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#55 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffb70d), 
nargs=19702616, address@hidden, 
    arg_vector=0x7fffffffb678, address@hidden) at eval.c:3022
#56 0x000000000056e053 in Ffuncall (nargs=2, address@hidden) at eval.c:2835
#57 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x970995), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#58 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffb968), 
nargs=9898392, address@hidden, 
    arg_vector=0x7fffffffb888, address@hidden) at eval.c:3022
#59 0x000000000056e053 in Ffuncall (nargs=2, address@hidden) at eval.c:2835
#60 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x9705b5), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#61 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffbb27), 
nargs=9897400, address@hidden, 
    arg_vector=0x7fffffffbb08, address@hidden) at eval.c:3022
#62 0x000000000056e053 in Ffuncall (nargs=3, address@hidden) at eval.c:2835
#63 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x19b10e5), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#64 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffbdd3), 
nargs=26939624, address@hidden, 
    arg_vector=0x7fffffffbcc0, address@hidden) at eval.c:3022
#65 0x000000000056e053 in Ffuncall (nargs=5, address@hidden) at eval.c:2835
#66 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x1a313b5), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#67 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffc27d), 
nargs=27464632, address@hidden, 
    arg_vector=0x7fffffffc038, address@hidden) at eval.c:3022
#68 0x000000000056e053 in Ffuncall (nargs=10, address@hidden) at eval.c:2835
#69 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x1e7dc45), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#70 0x000000000056ddd0 in funcall_lambda (fun=make_number(35184372085087), 
nargs=31972424, address@hidden, 
    arg_vector=0x7fffffffc518, address@hidden) at eval.c:3022
#71 0x000000000056e053 in Ffuncall (nargs=1, address@hidden) at eval.c:2835
#72 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x1eaa035), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#73 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffc829), 
nargs=32153656, address@hidden, 
    arg_vector=0x7fffffffc700, address@hidden) at eval.c:3022
#74 0x000000000056e053 in Ffuncall (nargs=1, address@hidden) at eval.c:2835
#75 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x1e7d235), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#76 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffca3f), 
nargs=31969848, address@hidden, 
    arg_vector=0x7fffffffca08, address@hidden) at eval.c:3022
#77 0x000000000056e053 in Ffuncall (nargs=1, args=0x7fffffffcbf0) at eval.c:2835
#78 0x000000000056e119 in funcall_nil (nargs=<optimized out>, args=<optimized 
out>) at eval.c:2452
#79 0x000000000056cafd in run_hook_with_args (nargs=1, args=0x7fffffffcbf0, 
funcall=0x56e110 <funcall_nil>)
    at eval.c:2629
#80 0x000000000056cc46 in Frun_hook_with_args (args=0x7fffffffcbf0, nargs=1) at 
eval.c:2494
#81 run_hook (hook=XIL(0x1e7d285)) at eval.c:2642
#82 Frun_hooks (nargs=2, args=0x7fffffffcc70) at eval.c:2476
#83 0x000000000056e0f6 in Ffuncall (nargs=<optimized out>, address@hidden) at 
eval.c:2821
#84 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x978e85), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#85 0x000000000056ddd0 in funcall_lambda (fun=make_number(35184372085891), 
nargs=9932424, address@hidden, 
    arg_vector=0x7fffffffcc68, address@hidden) at eval.c:3022
#86 0x000000000056e053 in Ffuncall (nargs=1, address@hidden) at eval.c:2835
#87 0x00000000005a5f48 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x977e35), maxdepth=<optimized out>, 
    args_template=<optimized out>, address@hidden, args=<optimized out>, 
address@hidden)
    at bytecode.c:632
#88 0x000000000056ddd0 in funcall_lambda (fun=XIL(0x7fffffffd62c), 
address@hidden(0x977de5), nargs=9928248, 
    address@hidden, arg_vector=0x7fffffffd460, address@hidden) at eval.c:3022
#89 0x000000000056d0c0 in apply_lambda (fun=XIL(0x977de5), args=<optimized 
out>, address@hidden) at eval.c:2958
#90 0x000000000056d472 in eval_sub (address@hidden(0x1132f63)) at eval.c:2361
#91 0x00000000005715a8 in Feval (form=XIL(0x1132f63), lexical=<optimized out>) 
at eval.c:2106
#92 0x000000000056c67e in internal_condition_case (address@hidden 
<top_level_2>, 
    address@hidden(0x5250), address@hidden <cmd_error>) at eval.c:1332
#93 0x00000000004fa02c in top_level_1 (address@hidden(0)) at keyboard.c:1128
#94 0x000000000056c61c in internal_catch (address@hidden(0xc960), 
address@hidden <top_level_1>, 
    address@hidden(0)) at eval.c:1097
#95 0x00000000004f7708 in command_loop () at keyboard.c:1089
#96 0x00000000004fcbe6 in recursive_edit_1 () at keyboard.c:696
#97 0x00000000004fcf30 in Frecursive_edit () at keyboard.c:767
#98 0x000000000041be36 in main (argc=1, argv=0x7fffffffdb48) at emacs.c:1724

Lisp Backtrace:
"Automatic GC" (0x0)
"internal-face-x-get-resource" (0xffff9a30)
"set-face-attribute-from-resource" (0xffff9c18)
"set-face-attributes-from-resources" (0xffff9df0)
"make-face-x-resource-internal" (0xffff9fc0)
"face-spec-recalc" (0xffffa240)
"frame-set-background-mode" (0xffffa4f8)
"internal-set-lisp-face-attribute" (0xffffa7e8)
"set-face-attribute" (0xffffaa38)
"apply" (0xffffac40)
"face-spec-set-2" (0xffffae20)
"face-spec-recalc" (0xffffb030)
"face-set-after-frame-default" (0xffffb240)
"x-create-frame-with-faces" (0xffffb448)
0x12cc430 PVEC_COMPILED
"apply" (0xffffb680)
"frame-creation-function" (0xffffb890)
"make-frame" (0xffffbb10)
"make-frame-on-display" (0xffffbcc8)
"frameset--restore-frame" (0xffffc040)
"frameset-restore" (0xffffc520)
"desktop-restore-frameset" (0xffffc708)
"desktop-read" (0xffffca10)
0x1e7d280 PVEC_COMPILED
"run-hooks" (0xffffcc70)
"command-line" (0xffffd468)
"normal-top-level" (0xffffd780)
(gdb) 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]