I looked at the implementation of cairo-ft-font.c and it seems that
there are huge multi-threading violations in cairo. The reason is that
FreeType API documentation clearly states:

In multi-threaded applications, make sure that the same FT_Library
object or any of its children doesn't get accessed in parallel.

Cairo initializes FT_Library for its font map and there's a lock for
that, however it's only used for font map manipulations, the actual FT_
library calls are completely unprotected with that lock, although they
should be! What adds to the injury is that cairo-ft-font.c even has this
comment on one of its functions:

You must be careful when using this function in a library or in a
threaded application, because freetype's design makes it unsafe to
call freetype functions simultaneously from multiple threads, (even
if using distinct FT_Face objects)

Too bad they don't follow their own advice, and no wonder compiz is
crashing like that. Can somebody contact upstream about this issue and
make them aware of it?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1199571

Title:
  compiz crashed with SIGSEGV in af_latin_hints_compute_edges()

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1199571/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to