Bug 1377570

Summary: EC: Set/unset dirty flag for all the update operations
Product: [Community] GlusterFS Reporter: Ashish Pandey <aspandey>
Component: disperseAssignee: Ashish Pandey <aspandey>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.9CC: bugs, hgowtham
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 3.9.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1316873 Environment:
Last Closed: 2017-03-08 08:34:45 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: 1316873    
Bug Blocks: 1361513    

Description Ashish Pandey 2016-09-20 06:33:47 UTC
+++ This bug was initially created as a clone of Bug #1316873 +++

Description of problem:

Set/unset dirty flag for all the update operations

If write operation come for a file, set its the dirty flag in preop for that file, perform write and then unset dirty flag in post of if write is successful on all the bricks. 
If any brick goes down during write fop, keep the dirty flag ON and don't unset it in postop. This will trigger heal for the file when the bricks comes up.

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Vijay Bellur on 2016-03-15 03:26:03 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#1) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-03-16 02:48:54 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#2) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-03-21 01:45:56 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#3) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-03-21 02:24:13 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#4) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-03-21 05:40:30 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#5) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Mike McCune on 2016-03-28 18:17:27 EDT ---

This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

--- Additional comment from Vijay Bellur on 2016-04-04 04:13:13 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#6) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-04-12 13:55:49 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#7) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-04-19 16:41:28 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#8) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-08-17 08:45:35 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#9) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Vijay Bellur on 2016-08-18 04:23:38 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#10) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-08-23 06:00:38 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#11) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-08-30 03:00:32 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#12) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-08-31 08:01:30 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#13) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-02 04:32:03 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#14) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-03 09:12:29 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#15) for review on master by Atin Mukherjee (amukherj)

--- Additional comment from Worker Ant on 2016-09-08 09:01:40 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#16) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-09 01:55:54 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#17) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-09 02:14:12 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#18) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-09 09:48:01 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#19) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-12 04:50:13 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#20) for review on master by Ashish Pandey (aspandey)

--- Additional comment from Worker Ant on 2016-09-14 02:30:41 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#21) for review on master by Pranith Kumar Karampuri (pkarampu)

--- Additional comment from Worker Ant on 2016-09-14 22:08:52 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#22) for review on master by Pranith Kumar Karampuri (pkarampu)

--- Additional comment from Worker Ant on 2016-09-15 13:31:40 EDT ---

REVIEW: http://review.gluster.org/13733 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#23) for review on master by Pranith Kumar Karampuri (pkarampu)

--- Additional comment from Worker Ant on 2016-09-16 02:26:32 EDT ---

COMMIT: http://review.gluster.org/13733 committed in master by Xavier Hernandez (xhernandez) 
------
commit 660ca23dee3a0f1a7128d3777589467b27af514b
Author: Ashish Pandey <aspandey>
Date:   Mon Aug 22 16:03:13 2016 +0530

    cluster/ec: set/unset dirty flag for data/metadata update
    
    Currently, for all the update operations, metadata or data,
    we set the dirty flag at the end of the operation only if
    a brick is down. This leads to delay in healing and in some
    cases not at all.
    In this patch we set (+1) the dirty flag
    at the start of the metadata or data update operations and
    after successfull completion of the fop, we unset (-1) it again.
    
    Change-Id: Ide5668bdec7b937a61c5c840cdc79a967598e1e9
    BUG: 1316873
    Signed-off-by: Ashish Pandey <aspandey>
    Reviewed-on: http://review.gluster.org/13733
    Tested-by: Pranith Kumar Karampuri <pkarampu>
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Xavier Hernandez <xhernandez>

Comment 1 Worker Ant 2016-09-20 06:41:39 UTC
REVIEW: http://review.gluster.org/15534 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#1) for review on release-3.9 by Ashish Pandey (aspandey)

Comment 2 Worker Ant 2016-10-13 15:41:29 UTC
REVIEW: http://review.gluster.org/15534 (cluster/ec: set/unset dirty flag for data/metadata update) posted (#2) for review on release-3.9 by Pranith Kumar Karampuri (pkarampu)

Comment 3 Worker Ant 2016-10-13 20:04:15 UTC
COMMIT: http://review.gluster.org/15534 committed in release-3.9 by Pranith Kumar Karampuri (pkarampu) 
------
commit f59d0c80f612413e02712ab4d8e7132b7a714d19
Author: Ashish Pandey <aspandey>
Date:   Mon Aug 22 16:03:13 2016 +0530

    cluster/ec: set/unset dirty flag for data/metadata update
    
    Currently, for all the update operations, metadata or data,
    we set the dirty flag at the end of the operation only if
    a brick is down. This leads to delay in healing and in some
    cases not at all.
    In this patch we set (+1) the dirty flag
    at the start of the metadata or data update operations and
    after successfull completion of the fop, we unset (-1) it again.
    
    >Change-Id: Ide5668bdec7b937a61c5c840cdc79a967598e1e9
    >BUG: 1316873
    >Signed-off-by: Ashish Pandey <aspandey>
    >Reviewed-on: http://review.gluster.org/13733
    >Tested-by: Pranith Kumar Karampuri <pkarampu>
    >Smoke: Gluster Build System <jenkins.org>
    >NetBSD-regression: NetBSD Build System <jenkins.org>
    >CentOS-regression: Gluster Build System <jenkins.org>
    >Reviewed-by: Xavier Hernandez <xhernandez>
    
    Change-Id: Ide5668bdec7b937a61c5c840cdc79a967598e1e9
    BUG: 1377570
    Signed-off-by: Ashish Pandey <aspandey>
    Reviewed-on: http://review.gluster.org/15534
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>
    Tested-by: Pranith Kumar Karampuri <pkarampu>
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>