← Back to team overview

touch-packages team mailing list archive

[Bug 1199571] Re: Huge multi-threading violations in cairo

 

Launchpad has imported 5 comments from the remote bug at
https://bugs.freedesktop.org/show_bug.cgi?id=69034.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2013-09-06T13:19:58+00:00 Marek Kašík wrote:

Created attachment 85352
Make usage of freetype thread safe

Current freetype backend is not thread safe. It can cause segmentation
fault when threads are not properly handled by applications which use
cairo (see https://bugzilla.redhat.com/show_bug.cgi?id=678397 and its
duplicates).

Attached patch tries to fix this problem by creating FT_Library object
for each thread. This is recommended solution by freetype
(http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/include/freetype/freetype.h#n1684).

It adds a hash table to which FT_Library is added if a new thread needs
one. Thread IDs are used as keys for this table.

Marek

Reply at:
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1199571/comments/5

------------------------------------------------------------------------
On 2013-09-06T17:58:01+00:00 Freedesktop wrote:

Unfortunately that FreeType "recommendation" is red herring.  First,
people are free to pass around FT_Face among threads, and second, we
will be leaking stuff this way, unless we add proper TLS support.

At any rate.  I suggest we use cairo for all glyph rasterizer instead.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1199571/comments/6

------------------------------------------------------------------------
On 2013-12-16T06:16:19+00:00 Freedesktop wrote:

Chris, any chance you have some time to think about this?

Reply at:
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1199571/comments/7

------------------------------------------------------------------------
On 2014-07-31T16:45:44+00:00 Freedesktop wrote:

*** Bug 81874 has been marked as a duplicate of this bug. ***

Reply at:
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1199571/comments/20

------------------------------------------------------------------------
On 2014-07-31T16:59:16+00:00 Freedesktop wrote:

Looks like copying thread-local storage macros from pixman-compiler.h
and using them to use per-thread FT_Library might easily get most of
this resolved.  I can take a look if no one else steps in.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1199571/comments/21


** Changed in: libcairo
       Status: Unknown => Confirmed

** Changed in: libcairo
   Importance: Unknown => Critical

** Bug watch added: Red Hat Bugzilla #678397
   https://bugzilla.redhat.com/show_bug.cgi?id=678397

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

Title:
  Huge multi-threading violations in cairo

Status in libcairo  -  cairo vector graphics library:
  Confirmed
Status in “cairo” 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/libcairo/+bug/1199571/+subscriptions