[Fontconfig] Issues with current cvs

Ronny V. Vindenes ronnyvv at broadpark.no
Fri Jan 20 05:35:26 PST 2006


fre, 20,.01.2006 kl. 01.24 -0500, skrev Patrick Lam:
> Ronny V. Vindenes wrote:
> > 
> > Also after installing and running 'fc-cache -fs' a lot of the files
> > in /var/cache/fontconfig are 131072 bytes (but produce different
> > md5sums) and produce this exact output:
> > 
> > $ fc-cat /var/cache/fontconfig/f020b8ea95ccc22321ce43a4499889d8.cache-2
> > fc-cat: printing directory cache for cache which would be named     1000
> > 78563412    1    8    4   20   10    8   18    4   10   10    4    8
> > 20    8    8    2   20    4   30 1000
> 
> Hmm.  That shouldn't happen either, almost like you have binaries that 
> are out of synch.

Binaries are definitely in sync:
$ ll -gG /usr/bin/fc-* /usr/lib64/libfontconfig.so.1.0.4
-rwxr-xr-x 1  14176 jan 19 21:56 /usr/bin/fc-cache
-rwxr-xr-x 1  32176 jan 19 21:56 /usr/bin/fc-cat
-rwxr-xr-x 1  11096 jan 19 21:56 /usr/bin/fc-list
-rwxr-xr-x 1  11336 jan 19 21:56 /usr/bin/fc-match
-rwxr-xr-x 1 260840 jan 19 21:56 /usr/lib64/libfontconfig.so.1.0.4

Today I also got the same output from fc-cat on my ~/.fonts.cache-2 and
it is much larger than the system cache files.

> 
> > Finally running make check-valgrind in cairo cvs, a few memleaks are
> > reported in fontconfig (which is an improvement over earlier fontconfig
> > cvs that triggered illegal memory accesses).
> 
> Where are they?

The valgrind output from cairo cvs is gigantic, so I haven't had the
time to track them down, but I've attached the output of

# valgrind --leak-check=full fc-cache -sfv > fc-cache-valgrind 2>&1

Note the warnings about write()ing uninitialized buffers to the cache.

-- 
Ronny V. Vindenes <ronnyvv at broadpark.no>
-------------- next part --------------
==8189== Memcheck, a memory error detector.
==8189== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==8189== Using LibVEX rev 1471, a library for dynamic binary translation.
==8189== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==8189== Using valgrind-3.1.0, a dynamic binary instrumentation framework.
==8189== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==8189== For more details, rerun with: -v
==8189== 
fc-cache: "/usr/share/fonts": caching, 0 fonts, 17 dirs
fc-cache: "/usr/share/fonts/bitstream-vera": ==8189== Warning: invalid file descriptor -1 in syscall close()
==8189== Syscall param write(buf) points to uninitialised byte(s)
==8189==    at 0x3D508BBC60: __write_nocancel (in /lib64/libc-2.3.90.so)
==8189==    by 0x3748B0FACE: FcDirCacheWrite (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x401365: ??? (fc-cache.c:210)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189==  Address 0x4D2CCE4 is 340 bytes inside a block of size 15,213 alloc'd
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B0F13E: (within /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B0F6E6: FcDirCacheWrite (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x401365: ??? (fc-cache.c:210)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
caching, 10 fonts, 0 dirs
fc-cache: "/usr/share/fonts/ISO8859-2": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 3 dirs
fc-cache: "/usr/share/fonts/ISO8859-2/75dpi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/ISO8859-2/misc": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/ISO8859-2/100dpi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/gujarati": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/bitmap-fonts": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 32 fonts, 0 dirs
fc-cache: "/usr/share/fonts/korean": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 2 dirs
fc-cache: "/usr/share/fonts/korean/misc": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/korean/TrueType": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/hebrew": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/dejavu": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 20 fonts, 0 dirs
fc-cache: "/usr/share/fonts/chinese": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 2 dirs
fc-cache: "/usr/share/fonts/chinese/misc": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/chinese/TrueType": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/bengali": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/KOI8-R": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 3 dirs
fc-cache: "/usr/share/fonts/KOI8-R/75dpi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/KOI8-R/misc": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/KOI8-R/100dpi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/arabic": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/hindi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/punjabi": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/japanese": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 2 dirs
fc-cache: "/usr/share/fonts/japanese/misc": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/japanese/TrueType": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/default": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 2 dirs
fc-cache: "/usr/share/fonts/default/Type1": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 35 fonts, 0 dirs
fc-cache: "/usr/share/fonts/default/ghostscript": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 8 fonts, 0 dirs
fc-cache: "/usr/share/fonts/tamil": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 0 fonts, 0 dirs
fc-cache: "/usr/share/fonts/mathml": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 9 fonts, 0 dirs
fc-cache: "/usr/share/X11/fonts/Type1": ==8189== Warning: invalid file descriptor -1 in syscall close()
==8189== 
==8189== Syscall param write(buf) points to uninitialised byte(s)
==8189==    at 0x3D508BBC60: __write_nocancel (in /lib64/libc-2.3.90.so)
==8189==    by 0x3748B0FACE: FcDirCacheWrite (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x401365: ??? (fc-cache.c:210)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189==  Address 0x551927C is 948 bytes inside a block of size 38,268 alloc'd
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B0F13E: (within /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B0F6E6: FcDirCacheWrite (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x401365: ??? (fc-cache.c:210)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
caching, 29 fonts, 0 dirs
fc-cache: "/usr/share/X11/fonts/OTF": ==8189== Warning: invalid file descriptor -1 in syscall close()
caching, 14 fonts, 0 dirs
fc-cache: succeeded
==8189== 
==8189== ERROR SUMMARY: 8 errors from 2 contexts (suppressed: 4 from 1)
==8189== malloc/free: in use at exit: 127,988 bytes in 5,825 blocks.
==8189== malloc/free: 381,943 allocs, 376,118 frees, 151,565,762 bytes allocated.
==8189== For counts of detected errors, rerun with: -v
==8189== searching for pointers to 5,825 not-freed blocks.
==8189== checked 166,776 bytes.
==8189== 
==8189== 
==8189== 220 bytes in 6 blocks are possibly lost in loss record 14 of 22
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B27C77: FcStrCopy (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B21654: FcValueSave (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B23C02: FcPatternAddWithBinding (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B18A60: FcFreeTypeQuery (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B1712D: FcFileScanConfig (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B173D3: FcDirScanConfig (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x40132A: ??? (fc-cache.c:186)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189== 
==8189== 
==8189== 4,046 bytes in 34 blocks are definitely lost in loss record 18 of 22
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B0F963: FcDirCacheWrite (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x401365: ??? (fc-cache.c:210)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189== 
==8189== 
==8189== 6,781 bytes in 130 blocks are definitely lost in loss record 19 of 22
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B27EDB: FcStrPlus (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B0EFA9: (within /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B10852: FcDirCacheUnlink (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x4014FE: ??? (fc-cache.c:207)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189== 
==8189== 
==8189== 71,103 bytes in 4,125 blocks are definitely lost in loss record 22 of 22
==8189==    at 0x4905598: malloc (vg_replace_malloc.c:149)
==8189==    by 0x3748B27C77: FcStrCopy (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B21654: FcValueSave (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B23C02: FcPatternAddWithBinding (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B18F2D: FcFreeTypeQuery (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B1712D: FcFileScanConfig (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x3748B173D3: FcDirScanConfig (in /usr/lib64/libfontconfig.so.1.0.4)
==8189==    by 0x40132A: ??? (fc-cache.c:186)
==8189==    by 0x4013AA: ??? (fc-cache.c:227)
==8189==    by 0x4017F6: ??? (fc-cache.c:309)
==8189==    by 0x3D5081CDE3: __libc_start_main (in /lib64/libc-2.3.90.so)
==8189== 
==8189== LEAK SUMMARY:
==8189==    definitely lost: 81,930 bytes in 4,289 blocks.
==8189==      possibly lost: 220 bytes in 6 blocks.
==8189==    still reachable: 45,838 bytes in 1,530 blocks.
==8189==         suppressed: 0 bytes in 0 blocks.
==8189== Reachable blocks (those to which a pointer was found) are not shown.
==8189== To see them, rerun with: --show-reachable=yes


More information about the Fontconfig mailing list