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 DX Packages, which is subscribed to unity in Ubuntu. Matching subscriptions: dx-packages https://bugs.launchpad.net/bugs/1199571 Title: compiz crashed with SIGSEGV in af_latin_hints_compute_edges() Status in “unity” package in Ubuntu: Triaged Bug description: Fresh dist-upgrade; brought up the dash, typed "term"; single clicked on the terminal app and _bang_. ProblemType: Crash DistroRelease: Ubuntu 13.10 Package: unity 7.0.2+13.10.20130705.1-0ubuntu1 ProcVersionSignature: Ubuntu 3.10.0-2.10-generic 3.10.0 Uname: Linux 3.10.0-2-generic x86_64 ApportVersion: 2.10.2-0ubuntu4 Architecture: amd64 Date: Tue Jul 9 17:47:10 2013 EcryptfsInUse: Yes ExecutablePath: /usr/bin/compiz InstallationDate: Installed on 2013-06-06 (33 days ago) InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424) MarkForUpload: True ProcCmdline: compiz ProcEnviron: LANGUAGE=en_US PATH=(custom, user) XDG_RUNTIME_DIR=<set> LANG=en_US.UTF-8 SHELL=/bin/bash SegvAnalysis: Segfault happened at: 0x7ff3b4ed7a10: mov %rdx,0x10(%rax) PC (0x7ff3b4ed7a10) ok source "%rdx" ok destination "0x10(%rax)" (0x00000010) not located in a known VMA region (needed writable region)! Stack memory exhausted (SP below stack segment) SegvReason: writing NULL VMA Signal: 11 SourcePackage: unity StacktraceTop: ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6 ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6 ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6 ?? () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6 FT_Load_Glyph () from /usr/lib/x86_64-linux-gnu/libfreetype.so.6 Title: compiz crashed with SIGSEGV in FT_Load_Glyph() UpgradeStatus: No upgrade log present (probably fresh install) UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1199571/+subscriptions -- Mailing list: https://launchpad.net/~dx-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~dx-packages More help : https://help.launchpad.net/ListHelp

