[Desktop-packages] [Bug 1062534] Re: Thread unsafe access to internal linked list, breaks Origin games in Wine

2012-11-27 Thread Alessandro Pignotti
** Patch added: "0001-Remove-an-optimization-that-is-thread-unsafe.patch"
   
https://bugs.launchpad.net/xlibs/+bug/1062534/+attachment/3445142/+files/0001-Remove-an-optimization-that-is-thread-unsafe.patch

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libx11 in Ubuntu.
https://bugs.launchpad.net/bugs/1062534

Title:
  Thread unsafe access to internal linked list, breaks Origin games in
  Wine

Status in Modular X11 Libraries:
  Confirmed
Status in “libx11” package in Ubuntu:
  Confirmed

Bug description:
  In file src/xlibi18n/lcConv.c the following linked list head is
  defined

  static XlcConverterList conv_list = NULL;

  Which is then modified by _XlcSetConverter and get_converter in a non
  thread-safe manner. Inside get_converter the list is reorderder to
  increase the efficiency of looking up the same element the next time,
  but this is especially dangerous since a seemingly read-only method is
  actually modifying the data.

  Modifying the list in such thread unsafe manner does case the list to
  become garbled in some workloads and causes infinite loops when the
  get_converter is invoked. The solution I suggest is to add a mutex or
  spinlock around accesses to the linked list, I would it myself but I'm
  not sure about what is the usual mutex implementation for this
  project.

To manage notifications about this bug go to:
https://bugs.launchpad.net/xlibs/+bug/1062534/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp


[Desktop-packages] [Bug 1062534] Re: Thread unsafe access to internal linked list, breaks Origin games in Wine

2012-11-27 Thread Alessandro Pignotti
I'm attaching two internal pacthes that we use to fix the issue. They
should be consider hacks to make the problem more clear.

** Patch added: "0001-Improve-thread-safety-of-localization.patch"
   
https://bugs.launchpad.net/xlibs/+bug/1062534/+attachment/3445141/+files/0001-Improve-thread-safety-of-localization.patch

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libx11 in Ubuntu.
https://bugs.launchpad.net/bugs/1062534

Title:
  Thread unsafe access to internal linked list, breaks Origin games in
  Wine

Status in Modular X11 Libraries:
  Confirmed
Status in “libx11” package in Ubuntu:
  Confirmed

Bug description:
  In file src/xlibi18n/lcConv.c the following linked list head is
  defined

  static XlcConverterList conv_list = NULL;

  Which is then modified by _XlcSetConverter and get_converter in a non
  thread-safe manner. Inside get_converter the list is reorderder to
  increase the efficiency of looking up the same element the next time,
  but this is especially dangerous since a seemingly read-only method is
  actually modifying the data.

  Modifying the list in such thread unsafe manner does case the list to
  become garbled in some workloads and causes infinite loops when the
  get_converter is invoked. The solution I suggest is to add a mutex or
  spinlock around accesses to the linked list, I would it myself but I'm
  not sure about what is the usual mutex implementation for this
  project.

To manage notifications about this bug go to:
https://bugs.launchpad.net/xlibs/+bug/1062534/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp


[Desktop-packages] [Bug 1062534] Re: Thread unsafe access to internal linked list, breaks Origin games in Wine

2012-11-08 Thread Alessandro Pignotti
I've realized that I've made a typo in the type. The problem is with
_thread_ safety, not type safety of course.

** Summary changed:

- Type unsafe access to internal linked list, breaks Origin games in Wine
+ Thread unsafe access to internal linked list, breaks Origin games in Wine

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libx11 in Ubuntu.
https://bugs.launchpad.net/bugs/1062534

Title:
  Thread unsafe access to internal linked list, breaks Origin games in
  Wine

Status in Modular X11 Libraries:
  Confirmed
Status in “libx11” package in Ubuntu:
  Confirmed

Bug description:
  In file src/xlibi18n/lcConv.c the following linked list head is
  defined

  static XlcConverterList conv_list = NULL;

  Which is then modified by _XlcSetConverter and get_converter in a non
  thread-safe manner. Inside get_converter the list is reorderder to
  increase the efficiency of looking up the same element the next time,
  but this is especially dangerous since a seemingly read-only method is
  actually modifying the data.

  Modifying the list in such thread unsafe manner does case the list to
  become garbled in some workloads and causes infinite loops when the
  get_converter is invoked. The solution I suggest is to add a mutex or
  spinlock around accesses to the linked list, I would it myself but I'm
  not sure about what is the usual mutex implementation for this
  project.

To manage notifications about this bug go to:
https://bugs.launchpad.net/xlibs/+bug/1062534/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp


[Desktop-packages] [Bug 1062534] [NEW] Type unsafe access to internal linked list

2012-10-05 Thread Alessandro Pignotti
Public bug reported:

In file src/xlibi18n/lcConv.c the following linked list head is defined

static XlcConverterList conv_list = NULL;

Which is then modified by _XlcSetConverter and get_converter in a non
thread-safe manner. Inside get_converter the list is reorderder to
increase the efficiency of looking up the same element the next time,
but this is especially dangerous since a seemingly read-only method is
actually modifying the data.

Modifying the list in such thread unsafe manner does case the list to
become garbled in some workloads and causes infinite loops when the
get_converter is invoked. The solution I suggest is to add a mutex or
spinlock around accesses to the linked list, I would it myself but I'm
not sure about what is the usual mutex implementation for this project.

** Affects: xlibs
 Importance: Unknown
 Status: Unknown

** Affects: libx11 (Ubuntu)
 Importance: Undecided
 Status: New

** Bug watch added: freedesktop.org Bugzilla #55678
   https://bugs.freedesktop.org/show_bug.cgi?id=55678

** Also affects: xlibs via
   https://bugs.freedesktop.org/show_bug.cgi?id=55678
   Importance: Unknown
   Status: Unknown

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libx11 in Ubuntu.
https://bugs.launchpad.net/bugs/1062534

Title:
  Type unsafe access to internal linked list

Status in Modular X11 Libraries:
  Unknown
Status in “libx11” package in Ubuntu:
  New

Bug description:
  In file src/xlibi18n/lcConv.c the following linked list head is
  defined

  static XlcConverterList conv_list = NULL;

  Which is then modified by _XlcSetConverter and get_converter in a non
  thread-safe manner. Inside get_converter the list is reorderder to
  increase the efficiency of looking up the same element the next time,
  but this is especially dangerous since a seemingly read-only method is
  actually modifying the data.

  Modifying the list in such thread unsafe manner does case the list to
  become garbled in some workloads and causes infinite loops when the
  get_converter is invoked. The solution I suggest is to add a mutex or
  spinlock around accesses to the linked list, I would it myself but I'm
  not sure about what is the usual mutex implementation for this
  project.

To manage notifications about this bug go to:
https://bugs.launchpad.net/xlibs/+bug/1062534/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp