[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: __pthread_setcancelstate called unconditionally, crashes at 0
From: |
Florian Weimer |
Subject: |
Re: __pthread_setcancelstate called unconditionally, crashes at 0 |
Date: |
Thu, 11 May 2023 19:56:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
* Samuel Thibault:
> Florian Weimer, le jeu. 11 mai 2023 19:44:42 +0200, a ecrit:
>> * Sergey Bugaev:
>> > Clearly __pthread_setcancelstate has been pragma weak'd, and used here
>> > without a check. This is a statically linked x86_64-gnu (so, Hurd and
>> > HTL) executable. Commit 93d78ec1cba68184931b75bef29afd3aed30f43a
>> > "nptl: Move pthread_setcancelstate into libc" seems to be the culprit:
>> > that commit only moved the NPTL symbol into libc, yet changed the
>> > original __libc_ptf_call (__pthread_setcancelstate) calls to direct
>> > __pthread_setcancelstate calls, in this and many other places.
>>
>> Apparently, Hurd does not support async cancellation?
>
> ? It does, see htl/pt-cancel.c's check for
> PTHREAD_CANCEL_ASYNCHRONOUS.
But __pthread_setcancelstate does not trigger async cancellation if
there's a pending async request and cancellation is enabled.
Thanks,
Florian