[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <784746fd-55e4-679c-c9a5-85aeffc166b3@redhat.com>
Date: Wed, 17 May 2017 19:50:31 +0200
From: Florian Weimer <fweimer@...hat.com>
To: Markus Trippelsdorf <markus@...ppelsdorf.de>,
linux-kernel@...r.kernel.org
Cc: Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>,
Torvald Riegel <triegel@...hat.com>
Subject: Re: commit cfafcd117 "futex: Rework futex_lock_pi() to use
rt_mutex_*_proxy_lock()" causes glibc nptl/tst-robustpi8 failure
On 05/17/2017 07:36 PM, Markus Trippelsdorf wrote:
> Since:
> commit cfafcd117da0216520568c195cb2f6cd1980c4bb
> Author: Peter Zijlstra <peterz@...radead.org>
> Date: Wed Mar 22 11:35:58 2017 +0100
>
> futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
>
> glibc's nptl/tst-robustpi8 testcase fails:
>
> glibc-build % ./nptl/tst-robustpi8
> tst-robustpi8: ../nptl/pthread_mutex_lock.c:424: __pthread_mutex_lock_full: Assertion `INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH || !robust' failed.
>
> pthread_mutex_lock.c:
> 415 if (INTERNAL_SYSCALL_ERROR_P (e, __err)
> 416 && (INTERNAL_SYSCALL_ERRNO (e, __err) == ESRCH
> 417 || INTERNAL_SYSCALL_ERRNO (e, __err) == EDEADLK))
> 418 {
> 419 assert (INTERNAL_SYSCALL_ERRNO (e, __err) != EDEADLK
> 420 || (kind != PTHREAD_MUTEX_ERRORCHECK_NP
> 421 && kind != PTHREAD_MUTEX_RECURSIVE_NP));
> 422 /* ESRCH can happen only for non-robust PI mutexes where
> 423 the owner of the lock died. */
> 424 assert (INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH || !robust);
>
> During bisection the commit above hangs the machine when I run the
> testcase.
>
> See: https://sourceware.org/bugzilla/show_bug.cgi?id=21487
Markus, could you confirm that it is chocking on the EAGAIN failure? Or
is it something else?
What is userspace supposed to do with the error code?
Thanks,
Florian
Powered by blists - more mailing lists