lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ