[Fontconfig] Re: Status about fontconfig CVS regarding cache handling

Mike FABIAN mfabian at suse.de
Fri Feb 17 09:05:47 PST 2006


Frederic Crozat <fcrozat at mandriva.com> さんは書きました:

> Le vendredi 17 février 2006 à 10:22 -0500, Patrick Lam a écrit :
>> Frederic Crozat wrote:
>> > Le vendredi 17 février 2006 à 09:48 -0500, Patrick Lam a écrit :
>> > 
>> >>Frederic Crozat wrote:
>> >>
>> >>>Not really, now it crashes when starting fc-cache -v :
>> >>
>> >>That's probably due to the change in cache file format without a change 
>> >>in MAGIC.  I've now bumped up MAGIC to 0xFC02FC03.  Your fontconfig 
>> >>shouldn't crash anymore.
>> > 
>> > Well, it still does with updated code (same stack).
>> 
>> What if you blow away the cache files?
>
> If I remove the affected cache, fc-cache is able to update cache for
> this directory and crashes on one of the next directory :)
>
> I've attached the offending file (be careful, it is renamed).

I see the same crashes Frederic sees with the same backtrace.

I can easily reproduce it like this (as root):

    root at magellan:~# rm -f /var/cache/fontconfig/* ~/.fonts.cache-2
    root at magellan:~# fc-cache -v
    fc-cache: "/usr/share/fonts": caching, 0 fonts, 3 dirs
    fc-cache: "/usr/share/fonts/bdf": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/share/fonts": skipping, looped directory detected
    fc-cache: "/usr/share/fonts/wine": caching, 1 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts": caching, 0 fonts, 24 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/japanese": caching, 30 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/Speedo": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/URW": caching, 59 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/Type1": caching, 59 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/truetype": caching, 939 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/misc": caching, 190 fonts, 1 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/misc/sgi": caching, 35 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/75dpi": caching, 398 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID": caching, 0 fonts, 5 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan1": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan1/AFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan1/CFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan1/CIDFont": caching, 4 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan1/CMap": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan2": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan2/AFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan2/CFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan2/CIDFont": caching, 2 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Japan2/CMap": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Korea1": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Korea1/AFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Korea1/CFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Korea1/CIDFont": caching, 9 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-Korea1/CMap": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-CNS1": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-CNS1/AFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-CNS1/CFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-CNS1/CIDFont": caching, 2 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-CNS1/CMap": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-GB1": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-GB1/AFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-GB1/CFM": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-GB1/CIDFont": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/CID/Adobe-GB1/CMap": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/encodings": caching, 0 fonts, 1 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/encodings/large": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/local": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/util": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/uni": caching, 2 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/baekmuk": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/ucs": caching, 0 fonts, 1 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/ucs/misc": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/hellas": caching, 0 fonts, 4 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/hellas/100dpi": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/hellas/75dpi": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/hellas/Type1": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/hellas/misc": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin7": caching, 0 fonts, 1 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin7/75dpi": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/100dpi": caching, 398 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/cyrillic": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin2": caching, 0 fonts, 2 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin2/Type1": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin2/misc": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/test": caching, 220 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/xtest": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/Adobe": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/officebib": caching, 11 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin5": caching, 0 fonts, 3 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin5/100dpi": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin5/75dpi": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/latin5/misc": caching, 0 fonts, 0 dirs
    fc-cache: "/opt/kde3/share/fonts": caching, 1 fonts, 1 dirs
    fc-cache: "/opt/kde3/share/fonts/override": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/local/share/fonts": skipping, no such directory
    fc-cache: "/root/.fonts": skipping, no such directory
    fc-cache: "/root/.fonts/kde-override": skipping, no such directory
    fc-cache: "/usr/lib/ooo-2.0/share/fonts": caching, 0 fonts, 1 dirs
    fc-cache: "/usr/lib/ooo-2.0/share/fonts/truetype": caching, 1 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/Acrobat7/Resource/Font": caching, 16 fonts, 1 dirs
    fc-cache: "/usr/X11R6/lib/Acrobat7/Resource/Font/PFM": caching, 0 fonts, 0 dirs
    fc-cache: succeeded
    root at magellan:~# fc-cache -v
    fc-cache: "/usr/share/fonts": caching, 0 fonts, 3 dirs
    fc-cache: "/usr/share/fonts/bdf": caching, 0 fonts, 0 dirs
    fc-cache: "/usr/share/fonts": skipping, looped directory detected
    fc-cache: "/usr/share/fonts/wine": caching, 1 fonts, 0 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts": caching, 0 fonts, 24 dirs
    fc-cache: "/usr/X11R6/lib/X11/fonts/japanese": caching, 30 fonts, 0 dirs
    セグメンテーション違反です (core dumped)
    root at magellan:~# 

I.e. when running "fc-cache -v" the second time, it dumps core.
Of course the magic numbers in the cache files are correct already,
they are all 0xFC02FC03 (latest CVS).

Note that during the second run of "fc-cache -v" it always writes
"caching" instead of "skipping" to standard output.  I.e. it doesn't
seem to notice that the cache files are already up-to-date.

-- 
Mike FABIAN   <mfabian at suse.de>   http://www.suse.de/~mfabian
睡眠不足はいい仕事の敵だ。



More information about the Fontconfig mailing list