[Bugs] [Bug 1294675] Healing queue rarely empty

bugzilla at redhat.com bugzilla at redhat.com
Wed Apr 20 16:46:59 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1294675



--- Comment #6 from Vijay Bellur <vbellur at redhat.com> ---
COMMIT: http://review.gluster.org/14039 committed in release-3.7 by Pranith
Kumar Karampuri (pkarampu at redhat.com) 
------
commit c55da44b49f0183948f464dae4a5e11d9ed63a24
Author: Pranith Kumar K <pkarampu at redhat.com>
Date:   Thu Mar 31 14:40:09 2016 +0530

    cluster/afr: Fix spurious entries in heal info

    Problem:
    Locking schemes in afr-v1 were locking the directory/file completely during
    self-heal. Newer schemes of locking don't require Full directory, file
locking.
    But afr-v2 still has compatibility code to work-well with older clients,
where
    in entry-self-heal it takes a lock on a special 256 character name which
can't
    be created on the fs. Similarly for data self-heal there used to be a lock
on
    (LLONG_MAX-2, 1). Old locking scheme requires heal info to take sh-domain
locks
    before examining heal-state.  If it doesn't take sh-domain locks, then
there is
    a possibility of heal-info hanging till self-heal completes because of
    compatibility locks.  But the problem with heal-info taking sh-domain locks
is
    that if two heal-info or shd, heal-info try to inspect heal state in
parallel
    using trylocks on sh-domain, there is a possibility that both of them
assuming
    a heal is in progress. This was leading to spurious entries being shown in
    heal-info.

    Fix:
    As long as there is afr-v1 way of locking, we can't fix this problem with
    simple solutions.  If we know that the cluster is running newer versions of
    locking schemes, in those cases we can give accurate information in
heal-info.
    So introduce a new option called 'locking-scheme' which if it is 'granular'
    will give correct information in heal-info. Not only that, Extra network
hops
    for taking compatibility locks, sh-domain locks in heal info will not be
    necessary anymore. Thus it improves performance.

     >BUG: 1322850
     >Change-Id: Ia563c5f096b5922009ff0ec1c42d969d55d827a3
     >Signed-off-by: Pranith Kumar K <pkarampu at redhat.com>
     >Reviewed-on: http://review.gluster.org/13873
     >Smoke: Gluster Build System <jenkins at build.gluster.com>
     >NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
     >CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
     >Reviewed-by: Ashish Pandey <aspandey at redhat.com>
     >Reviewed-by: Anuradha Talur <atalur at redhat.com>
     >Reviewed-by: Krutika Dhananjay <kdhananj at redhat.com>
     >(cherry picked from commit b6a0780d86e7c6afe7ae0d9a87e6fe5c62b4d792)

    Change-Id: If7eee18843b48bbeff4c1355c102aa572b2c155a
    BUG: 1294675
    Signed-off-by: Pranith Kumar K <pkarampu at redhat.com>
    Reviewed-on: http://review.gluster.org/14039
    Reviewed-by: Krutika Dhananjay <kdhananj at redhat.com>
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=DjLDsVGsW1&a=cc_unsubscribe


More information about the Bugs mailing list