[Bugs] [Bug 1313312] New: Client self-heals block the FOP that triggered the heals

bugzilla at redhat.com bugzilla at redhat.com
Tue Mar 1 11:28:31 UTC 2016


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

            Bug ID: 1313312
           Summary: Client self-heals block the FOP that triggered the
                    heals
           Product: GlusterFS
           Version: 3.7.9
         Component: replicate
          Keywords: Triaged
          Severity: urgent
          Priority: urgent
          Assignee: bugs at gluster.org
          Reporter: ravishankar at redhat.com
                CC: bhubbard at redhat.com, bugs at gluster.org, ppai at redhat.com
        Depends On: 1297172
            Blocks: 1292314, 1293412, 1300875



+++ This bug was initially created as a clone of Bug #1297172 +++

Description of problem:
If a lookup or a read transaction FOP triggers an inode refresh, the FOP does
not return until the heal completes. For VM use cases, this could mean the VM
appearing to go to an unresponsive state until the heal completes.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.Create a 1x2 replica, fuse mount and create a file.
2.Disable self-heal daemon
2.Kill a brick, `dd` a few gigs into the file.
3.Bring the brick back up, do a hexdump of file from the mount.
4.Hexdump will stall spewing out data until the data heal completes (as seen
from the mount log)

Actual results:
FOP blocks until heal is done.

Expected results:
FOP should not wait for heals- they could be made to happen in the background.

--- Additional comment from Vijay Bellur on 2016-01-10 02:21:14 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#1) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-01-12 05:42:45 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#2) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Brad Hubbard on 2016-01-21 19:29:38 EST ---

Raising severity based on the bugs depending on this one.

--- Additional comment from Vijay Bellur on 2016-02-01 06:52:28 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#3) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-03 01:02:15 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#4) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-05 07:27:17 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#5) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-25 03:22:55 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#6) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-25 21:13:01 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#7) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-27 23:06:59 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#8) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-28 07:14:43 EST ---

REVIEW: http://review.gluster.org/13207 (afr: Add throttled background
client-side heals) posted (#9) for review on master by Ravishankar N
(ravishankar at redhat.com)

--- Additional comment from Vijay Bellur on 2016-03-01 06:23:32 EST ---

COMMIT: http://review.gluster.org/13207 committed in master by Pranith Kumar
Karampuri (pkarampu at redhat.com) 
------
commit 8210ca1a5c0e78e91c6fab7df7e002e39660b706
Author: Ravishankar N <ravishankar at redhat.com>
Date:   Sun Jan 10 09:19:34 2016 +0530

    afr: Add throttled background client-side heals

    If a heal is needed after inode refresh (lookup, read_txn), launch it in
    the background instead of blocking the fop (that triggered refresh) until
the
    heal happens.

    afr_replies_interpret() is modified such that the heal is
    launched only if atleast one sink brick is up.

    Max. no of heals that can happen in parallel is configurable via the
    'background-self-heal-count' volume option. Any number greater than that
    is put in a wait queue whose length is configurable via
    'heal-wait-queue-leng' volume option. If the wait queue is also full,
    further heals will be ignored.

    Default values:  background-self-heal-count=8, heal-wait-queue-leng=128

    Change-Id: I1d4a52814cdfd43d90591b6d2ad7b6219937ce70
    BUG: 1297172
    Signed-off-by: Ravishankar N <ravishankar at redhat.com>
    Reviewed-on: http://review.gluster.org/13207
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Pranith Kumar Karampuri <pkarampu at redhat.com>
    Tested-by: Pranith Kumar Karampuri <pkarampu at redhat.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1297172
[Bug 1297172] Client self-heals block the FOP that triggered the heals
https://bugzilla.redhat.com/show_bug.cgi?id=1300875
[Bug 1300875] Client self-heals block the FOP that triggered the heals
-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list