Files
Adhemerval Zanella c8041a1ec8 nptl: Fix lost wake-up in robust mutex ENOTRECOVERABLE path (BZ 34724)
pthread_mutex_lock, pthread_mutex_timedlock, and pthread_mutex_trylock
acquire a not recoverable robust mutex and release it with lll_unlock
before returning ENOTRECOVERABLE.  lll_unlock only wakes a waiter if the
lock value is larger than 1, which is never true for a robust lock with
FUTEX_WAITERS (bit 31) set.

Since pthread_mutex_unlock wakes only one waiter when the mutex becomes
not recoverable, and the woken thread acquires the lock with FUTEX_WAITERS
set, the remaining waiters block forever.

Release the lock as __pthread_mutex_unlock_full does, waking a waiter
if FUTEX_WAITERS was set.

Checked on x86_64-linux-gnu and aarch64-linux-gnu.
2026-10-19 15:56:50 -03:00
..
2026-08-31 15:43:44 -03:00
2023-05-18 12:39:47 -04:00
2023-05-18 12:39:47 -04:00
2026-09-01 08:24:24 +02:00
2023-05-18 12:39:47 -04:00
2023-05-18 12:39:47 -04:00
2026-08-28 12:54:02 +01:00