[Fontconfig] confused about semantics of $HOME/.fonts.cache-2
Behdad Esfahbod
behdad at cs.toronto.edu
Wed Jan 25 10:33:10 PST 2006
I can reproduce this consistently:
[behdad at home ~]$ rm .fonts.cache-2* -f
[behdad at home ~]$ \time fc-list | wc -l
2.49user 0.09system 0:02.59elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+29969minor)pagefaults 0swaps
198
[behdad at home ~]$ ll .fonts.cache-2*
-rw------- 1 behdad behdad 286721 Jan 25 13:27 .fonts.cache-2
[behdad at home ~]$ sudo touch /usr/share/fonts/bitstream-vera
[behdad at home ~]$ fc-list
Segmentation fault
[behdad at home ~]$ ll .fonts.cache-2*
-rw------- 1 behdad behdad 286721 Jan 25 13:27 .fonts.cache-2
-rw------- 1 behdad behdad 6 Jan 25 13:27 .fonts.cache-2.LCK
-rw------- 1 behdad behdad 14522 Jan 25 13:27 .fonts.cache-2.NEW
[behdad at home ~]$ \time fc-list | wc -l
0.03user 0.01system 0:00.05elapsed 84%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+806minor)pagefaults 0swaps
198
[behdad at home ~]$ ll .fonts.cache-2*
-rw------- 1 behdad behdad 286721 Jan 25 13:27 .fonts.cache-2
-rw------- 1 behdad behdad 6 Jan 25 13:27 .fonts.cache-2.LCK
-rw------- 1 behdad behdad 14522 Jan 25 13:27 .fonts.cache-2.NEW
And the backtrace:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1209092416 (LWP 28257)]
0x004d4d42 in FcGlobalCacheSave (cache=0x9b4cad0,
cache_file=0x9b440e8 "/home/behdad/.fonts.cache-2", config=0x9b44008)
at fccache.c:152
152 if (write (fd, chars, strlen(chars)+1) != strlen(chars)+1)
(gdb) bt
#0 0x004d4d42 in FcGlobalCacheSave (cache=0x9b4cad0,
cache_file=0x9b440e8 "/home/behdad/.fonts.cache-2", config=0x9b44008)
at fccache.c:152
#1 0x004d8910 in FcConfigBuildFonts (config=0x9b44008) at fccfg.c:328
#2 0x004e19cd in FcInitLoadConfigAndFonts () at fcinit.c:85
#3 0x004e1c66 in FcInit () at fcinit.c:103
#4 0x08048b16 in main (argc=1, argv=0xbfd03b84) at fc-list.c:119
(gdb)
(gdb) p cache->dirs[0]
$4 = {next = 0x9b46538, name = 0x9b5ba88
"/usr/share/fonts/bitstream-vera",
metadata = {magic = -66913278, count = 10361, bank = 778904322,
pattern_count = 10, patternelt_count = 164, valuelist_count = 164,
str_count = 238, langset_count = 10, charset_count = 10,
charset_numbers_count = 90, charset_leaf_count = 90,
charset_leaf_idx_count = 10}, offset = 0, ent = 0x9b54998}
I cannot do p chars, because of inlining I guess.
--behdad
http://behdad.org/
"Commandment Three says Do Not Kill, Amendment Two says Blood Will Spill"
-- Dan Bern, "New American Language"
More information about the Fontconfig
mailing list