Bug 1194306

Summary: [AFR-V2] - Do not count files which did not need index heal in the first place as successfully healed
Product: [Community] GlusterFS Reporter: Krutika Dhananjay <kdhananj>
Component: replicateAssignee: Krutika Dhananjay <kdhananj>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.6.2CC: bugs, hchiramm, rabhat
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: glusterfs-v3.6.3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1194305 Environment:
Last Closed: 2016-02-04 15:20:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1194305    
Bug Blocks: 1184460    

Description Krutika Dhananjay 2015-02-19 14:22:29 UTC
+++ This bug was initially created as a clone of Bug #1194305 +++

Description of problem:
When file modifications are happening while index heal is launched, index healer could pick up entries which appeared in indices/xattrop transiently during the course of the operations on the mount point, and do not really need any heal.
This will cause index healer to keep doing index-heal in a loop by believing that it did successfully heal some gfids even when it didn't.

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Anand Avati 2015-03-10 16:23:54 UTC
REVIEW: http://review.gluster.org/9852 (cluster/afr: Do not increment healed_count if no healing was performed) posted (#1) for review on release-3.6 by Krutika Dhananjay (kdhananj)

Comment 2 Anand Avati 2015-03-14 10:08:58 UTC
COMMIT: http://review.gluster.org/9852 committed in release-3.6 by Raghavendra Bhat (raghavendra) 
------
commit bd775bf495bca79ed5fec72450cd884f5a734221
Author: Krutika Dhananjay <kdhananj>
Date:   Thu Feb 19 19:35:17 2015 +0530

    cluster/afr: Do not increment healed_count if no healing was performed
    
            Backport of: http://review.gluster.org/9713
    
    PROBLEM:
    When file modifications are happening while index heal is launched,
    index healer could pick up entries which appeared in indices/xattrop
    transiently during the course of the operations on the mount point, and
    do not really need any heal. This will cause index healer to keep doing
    index-heal in a loop as long as it finds this entry, by believing that
    it did successfully heal some gfids even when it didn't.
    
    FIX:
    afr_selfheal() now returns a 1 to indicate that it did not (need to)
    heal a given gfid. afr_shd_selfheal() will not increment healed_count
    whenever afr_selfheal() returns a 1.
    
    Change-Id: I9158c814419b635fac3dfe2fe40c94d1548ea4e8
    BUG: 1194306
    Signed-off-by: Krutika Dhananjay <kdhananj>
    Reviewed-on: http://review.gluster.org/9852
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Ravishankar N <ravishankar>
    Reviewed-by: Anuradha Talur <atalur>
    Reviewed-by: Raghavendra Bhat <raghavendra>

Comment 3 Kaushal 2016-02-04 15:20:35 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-v3.6.3, please open a new bug report.

glusterfs-v3.6.3 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] https://www.gluster.org/pipermail/gluster-users/2015-April/021669.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user