Summary: | 100% reproducable segfault when FC/X11 combined with FC/Aqua on OS X | ||
---|---|---|---|
Product: | fontconfig | Reporter: | Paul Davis <paul> |
Component: | library | Assignee: | Keith Packard <keithp> |
Status: | RESOLVED FIXED | QA Contact: | Behdad Esfahbod <freedesktop> |
Severity: | blocker | ||
Priority: | medium | CC: | freedesktop |
Version: | 2.7 | ||
Hardware: | All | ||
OS: | Mac OS X (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Paul Davis
2009-12-04 06:19:48 UTC
I should have noted that we see the two applications creating different content in ~/.fontconfig, since this is not necessarily obvious. Ardour comes with its own fonts.conf file to limit the number of directories searched when building the font cache. The bug has been fixed in 2.8.0. (In reply to comment #1) > I should have noted that we see the two applications creating different content > in ~/.fontconfig, since this is not necessarily obvious. Ardour comes with its > own fonts.conf file to limit the number of directories searched when building > the font cache. This is evil. If you do that, you should not use ~/.fontconfig. commit 1f4e6fecde22fd4ce8336b01a5c32c533fcb8bac Author: Behdad Esfahbod <behdad@behdad.org> Date: Mon Nov 16 15:39:16 2009 -0500 Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Protect cache against future expansions of FcLangSet (adding new orth files). Previously, doing so could change the size of that struct. Indeed, that happened between 2.6.0 and 2.7.3, causing crashes. Unfortunately, sizeof(FcLangSet) was not checked in fcarch.c. This changes FcLangSet code to be able to cope with struct size changes. And change cache format, hence bumping from 2 to 3. I tested with a fresh build of 2.8.0 this morning. Crash still occured (the trace was from that build). Why is it so wrong to include a fonts.conf file? We ship fontconfig inside our application - we do not require that users have fontconfig installed. There is no other way for there to be a usable fontconfig conf file without this approach, at least not that I can see. hang on. are you saying that its fixed in 2.8 but *all* apps that interact with ~/.fontconfig need the update? as noted, i can demonstrate this crash to you right now, with FC 2.8.0 . if you could clarify what you mean by "fixed", i can test that and identify what is different between our two test cases. (In reply to comment #3) > I tested with a fresh build of 2.8.0 this morning. Crash still occured (the > trace was from that build). That's impossible. Should be something about your build environment. I bet it's still two pre 2.8.0 versions stepping on eachother's toes. > Why is it so wrong to include a fonts.conf file? We ship fontconfig inside our > application - we do not require that users have fontconfig installed. There is > no other way for there to be a usable fontconfig conf file without this > approach, at least not that I can see. Fine. I just suggested that you should at least change the cache directory to something other than these defaults: <cachedir>/var/cache/fontconfig</cachedir> <cachedir>~/.fontconfig</cachedir> Though, that still shouldn't warrant the crash if at least one of the fontconfigs is 2.8.0. (In reply to comment #4) > hang on. are you saying that its fixed in 2.8 but *all* apps that interact with > ~/.fontconfig need the update? No. Just one of them. And the old caches removed perhaps. (In reply to comment #5) > as noted, i can demonstrate this crash to you right now, with FC 2.8.0 . if you > could clarify what you mean by "fixed", i can test that and identify what is > different between our two test cases. 2.8.0 changes the cache version from 2 to 3. So if you ls ~/.fontconfig you should see files ending with ".cache-3" if you are really using 2.8.0. And previous versions use cache files ending in ".cache-2". They can't be interferring anymore. I'm closing this since there's been no response. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.