Deadlock in _dl_close join-ing threads accessing TLS (was Re: gimp won't launch)
Alexis Murzeau
amubtdx at gmail.com
Wed Aug 8 23:22:26 BST 2018
On 08/08/2018 00:59, Alexis Murzeau wrote:
> severity 903514 important
> thanks
>
>> Reassigning to glibc with affects on openblas and gimp as this is caused
>> by a deadlock inside glibc.
>
> Done.
>
> Lowering severity as this does not render any package unusable by
> themselves, but only a combination of them (GIMP + OpenBLAS).
>
> I think a workaround solution against GIMP OpenBLAS should be done as
> I'm not sure a good solution will emerge in glibc given attempts done in
> the past. The work to be done seems non trivial.
>
> My though on possible solutions:
> * Add a breaks between GIMP and OpenBLAS
> * Disable TLS in OpenBLAS build (if possible, but this would cause a
> performance loss for users that use OpenBLAS without gimp)
> * Add a delay in GIMP to not load then close libraries too fast (so
> OpenBLAS threads are fully initialized when dl_close is called on it)
>
Hi,
I've posted a issue on openblas upstream project [0] and they suggested
some solutions.
One of them is to disable the use of compiler supported TLS and instead
use pthreads.
I tested this and it seems to fix deadlocks while starting gimp (I tried
without arguments, with a non existing file and with an existing file).
I've pushed a merge request with the patch at [1].
I've also asked openblas upstream if this patch could be a good solution.
In that case would it be possible to have this patch tested for ones who
have major instabilities with gimp + openblas ?
Thanks :)
--
Alexis Murzeau
PGP: B7E6 0EBB 9293 7B06 BDBC 2787 E7BD 1904 F480 937F
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20180809/78f4be28/attachment-0001.sig>
More information about the debian-science-maintainers
mailing list