Summary: | Font backend is locking multithreaded application | ||
---|---|---|---|
Product: | cairo | Reporter: | Eduardo <ecarranza> |
Component: | freetype font backend | Assignee: | Behdad Esfahbod <freedesktop> |
Status: | RESOLVED INVALID | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | critical | ||
Priority: | high | CC: | david |
Version: | 1.3.16 | ||
Hardware: | PA-RISC (HP) | ||
OS: | HP-UX | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Eduardo
2007-08-08 10:12:34 UTC
(In reply to comment #0) > We are using cairo 1.3.16 as the backend for a graphing engine in a > multithreaded server product. First, I'm curious as to how you ended up depending on 1.3.16, which is an unstable snapshot of in-progress cairo development. See the message here, for example where cairo-1.3.16 is made available: http://cairographics.org/snapshots I'd strongly recommend you instead base work on actual stable releases of cairo, (which have been through *much* more testing, etc.), and are made available here: http://cairographics.org/releases (Distinguishing snapshots and releases is really easy as snapshots will always have an odd minor number in the release (as in 1.3) while releases will have an even number (as in 1.4).) That said, 1.3.16 was very late in the 1.3 process and in a quick check, I don't see any obvious locking-related changes in the log from 1.3.16 to 1.4.0. By the same token, I see no risk from moving to 1.3.16 to 1.4.0 as well, so there's no advantage that I can see of using 1.3.16, (and it will get you funny looks from cairo maintainers when you submit bugs). Meanwhile, it doesn't look like you're running cairo 1.3.16 either. You said: > The call stack is the following ... > #5 0x9fffffffe26cf890:0 in cairo_freetype_state_lock+0x70 () from > /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13 > #6 0x9fffffffe26d88c0:0 in _cairo_freetype_font_face_scaled_font_create_+0x210 > () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13 > #7 0x9fffffffe26da3e0:0 in _cairo_fontconfig_scaled_font_create_toy+0x560 () > from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13 The above 3 functions do not exist in cairo 1.3.16, (nor in any official cairo release nor snapshot). I'm guessing you've manually applied David Turner's proposed rewrite of cairo's freetype backend? That's still an experimental patch the the cairo maintainers are planning to review, test, and hopefully integrate during the current 1.5 development in preparation for a cairo 1.6 release in September or so. So I guess my questions are: Have you tested your application with a recent stable cairo release? Say 1.4.10 ? Or even 1.4.0 ? Does it work? Are there bugs? Did you test this previously and hit bugs that prompted you to go looking for David's patches? Did you report those bugs? David, is there any comment you would like to make on this bug? -Carl (In reply to comment #1) We got that particular cairo version from our graphing engine vendor. We had been dealing with a lot of assertions so we wanted to minimize the changes. You are correct, we applied some patches to our version. Before applying the patches we deadlocked our server in a matter of minutes. The patches seemed to work fine so we did not see any reason to change the Cairo backend to 1.4 but now that we have been running more stress tests with new functionality, we are getting these new deadlocks. I guess we could give it a try and update our cairo libraries to 1.4 but based on what you are telling me, we would still need to apply the patches as they are not in any release, correct? Eduardo By the way, one of the reasons we would be hesitant to change our current version is that the timeframe for our release is very close (a month) so if we changed the library, we would need to re-test everything and we do not really know what we are going to get. We simply do not have enough time so for this time, we were hoping to be able to just workaround this problem and then we can plan to upgrade to a stable release for the next version of our product. If you can give us any pointers as to what we could do to fix this in our own, we will certainly do that. Thanks again Too old and obsolete . |
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.