This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug nptl/21298] rwlock can deadlock on frequent reader/writer phase switching


https://sourceware.org/bugzilla/show_bug.cgi?id=21298

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  faf8c066df0d6bccb54bd74dd696eeb65e1b3bbc (commit)
      from  2557ae38f3aa599718f34317cd0c150892a92be5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=faf8c066df0d6bccb54bd74dd696eeb65e1b3bbc

commit faf8c066df0d6bccb54bd74dd696eeb65e1b3bbc
Author: Carlos O'Donell <carlos@systemhalted.org>
Date:   Fri Jul 28 00:22:44 2017 -0400

    rwlock: Fix explicit hand-over (bug 21298)

    Without this fix, the rwlock can fail to execute the explicit hand-over
    in certain cases (e.g., empty critical sections that switch quickly between
    read and write phases).  This can then lead to errors in how
__wrphase_futex
    is accessed, which in turn can lead to deadlocks.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                |   24 ++
 nptl/Makefile                            |    4 +-
 nptl/pthread_rwlock_common.c             |  478 +++++++++++++++---------------
 nptl/tst-rwlock20.c                      |  116 +++++++
 support/Makefile                         |    6 +
 support/xpthread_rwlock_init.c           |   27 ++
 support/xpthread_rwlock_rdlock.c         |   26 ++
 support/xpthread_rwlock_unlock.c         |   26 ++
 support/xpthread_rwlock_wrlock.c         |   26 ++
 support/xpthread_rwlockattr_init.c       |   26 ++
 support/xpthread_rwlockattr_setkind_np.c |   27 ++
 support/xthread.h                        |    8 +
 12 files changed, 555 insertions(+), 239 deletions(-)
 create mode 100644 nptl/tst-rwlock20.c
 create mode 100644 support/xpthread_rwlock_init.c
 create mode 100644 support/xpthread_rwlock_rdlock.c
 create mode 100644 support/xpthread_rwlock_unlock.c
 create mode 100644 support/xpthread_rwlock_wrlock.c
 create mode 100644 support/xpthread_rwlockattr_init.c
 create mode 100644 support/xpthread_rwlockattr_setkind_np.c

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]