Bug 765235 (GLUSTER-3503)

Summary: open should trigger data self-heal instead of lookup
Product: [Community] GlusterFS Reporter: Pranith Kumar K <pkarampu>
Component: replicateAssignee: Pranith Kumar K <pkarampu>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: mainlineCC: gluster-bugs, rabhat
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: glusterfs-3.3.0qa10 Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Pranith Kumar K 2011-09-02 03:40:14 UTC
In afr, data self heal will happen only in open or fd based fops but can perform it in lookup itself. This change is brought in number of back-ground self-heals allowed is 16 and lookups block self-heal is completed. We want to prevent blocking in fops. We can not lookups independent of self-heal frames because when there are gfid the decision of which file is correct is determined in self-heal So in afr, lookup self-heal is going to guarantee name space and open/fd fops will take responsibility for data consistency, are non blocking.

Comment 1 Anand Avati 2011-09-06 06:15:59 UTC
CHANGE: http://review.gluster.com/333 (This is brought in an effort to be nice to the system resources when) merged in master by Anand Avati (avati)

Comment 2 Anand Avati 2011-09-09 00:33:57 UTC
CHANGE: http://review.gluster.com/334 (By default, lookup triggers data self-heal but that is not the preferred way) merged in master by Anand Avati (avati)

Comment 3 Raghavendra Bhat 2011-09-23 06:07:51 UTC
Its fixed now. Checked with glusterfs-3.3.0qa10. Created a replicate volume, and did this.

gluster volume set <volname> data-self-heal open
gluster volume set <volname> self-heal-daemon off

mounted the volume and touched a file. Brought one of the servers down, wrote some data to the file. Bought the server up. Doing ls or stat on the file did not heal it. When I did cat on the file, it's data got healed.