Summary: | Solid source surface cache can cause cross-thread unhappiness | ||
---|---|---|---|
Product: | cairo | Reporter: | Carlos Garcia Campos <carlosgc> |
Component: | general | Assignee: | Carl Worth <cworth> |
Status: | RESOLVED FIXED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | blocker | ||
Priority: | medium | CC: | krh |
Version: | 1.3.15 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Carlos Garcia Campos
2007-02-18 05:05:14 UTC
The backtrace shows you using an Xlib surface from something other than the main thread! This particular problem could be solved (most likely) by calling XInitThreads(), but note that there are unresolved problems using FreeType fonts from multiple threads simultaneously, so even using a image surface from one thread and and Xlib surface from another (like the GTK+ user interface) could cause problems. Font locking problems aside, why is there an xlib surface in there to begin with? Evince only renders to image surfaces, and frame #13 (_cairo_image_surface_composite) shows that we're trying to composite the stroke traps into an image surface. It looks like _cairo_pattern_acquire_surface_for_solid goes and creates an xlib surface? Carlos, can reproduce the backtrace and try to get more info about 'dst' and 'pattern' in frame #10? Ok, I've just realized that the problem is not actually present in 1.3.14 snapshot. I got cairo from git and the latest commit in my local copy was this: http://gitweb.freedesktop.org/?p=cairo.git;a=commitdiff;h=2715f2098127d04d2f9e304580a26cd0842c0e64;hp=b31179478bf8c18245917caa1bee19bb61f336c1 I confirm that reverting this commit fixes the problem. OK, so the solid surface cache in that commit is the source of the problem. I'd like to get the mailing list involved in coming up with the right fix, so I'll call this bug to their attention now. Carlos, I know you tried mailing the list already and were blocked because you weren't subscribed. I've now whitelisted your address so you shouldn't have that problem again. -Carl Reverted the patch -> d0fe666a6ab1664af36a7b242d763c72f4e9f81b |
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.