OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-4354-g11efae8

Gerrit Code Review gerrit@openafs.org
Thu, 4 Sep 2014 08:52:37 -0400


The following commit has been merged in the master branch:
commit 11efae8362c5c73cdac19ef9f1c5e7f9c33883d8
Author: Simon Wilkinson <sxw@your-file-system.com>
Date:   Mon Aug 25 16:25:43 2014 +0100

    ubik: Don't leak UBIK_VERSION_LOCK if udisk_LogEnd fails
    
    If the call to udisk_LogEnd() fails (probably due to an I/O error)
    don't leak the UBIK_VERSION_LOCK.
    
    This is the possible cause of a vlserver deadlock, which had
    approximately 4800 threads blocked. Analysis of backtrace of all
    of these threads showed that all blocked threads were waiting in
    ubik.c:555 (blocked on DBHOLD) with the exception of:
    
    One in beacon.c:388 (blocked on UBIK_VERSION_LOCK)
    One in recovery.c:503 (blocked on DBHOLD)
    One in ubik.c:125 (blocked on DBHOLD)
    One in ubik.c:585 (blocked on UBIK_VERSION_LOCK)
    
    The last of these is the critical one, because it already holds
    the lock that DBHOLD waits on - so despite the vast majority of
    threads being blocked in DBHOLD, it's actually UBIK_VERSION_LOCK
    that we're waiting on.
    
    There is no sign of a thread which is still active which currently
    holds UBIK_VERSION_LOCK.
    
    Change-Id: I1627b448d359152237912d4d78c9fa52c7149aa0
    Reviewed-on: http://gerrit.openafs.org/11427
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

 src/ubik/disk.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

-- 
OpenAFS Master Repository