[Bugs] [Bug 1374567] [Bitrot]: Recovery fails of a corrupted hardlink ( and the corresponding parent file) in a disperse volume

bugzilla at redhat.com bugzilla at redhat.com
Mon Sep 19 05:37:58 UTC 2016


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



--- Comment #2 from Worker Ant <bugzilla-bot at gluster.org> ---
COMMIT: http://review.gluster.org/15434 committed in release-3.9 by Aravinda VK
(avishwan at redhat.com) 
------
commit 8781ea7ddacc602b2f23689fa5f3415aec7253f1
Author: Kotresh HR <khiremat at redhat.com>
Date:   Tue Sep 6 18:28:42 2016 +0530

    feature/bitrot: Fix recovery of corrupted hardlink

    Problem:
    When a file with hardlink is corrupted in ec volume,
    the recovery steps mentioned was not working.
    Only name and metadata was healing but not the data.

    Cause:
    The bad file marker in the inode context is not removed.
    Hence when self heal tries to open the file for data
    healing, it fails with EIO.

    Background:
    The bitrot deletes inode context during forget.

    Briefly, the recovery steps involves following steps.
       1. Delete the entry marked with bad file xattr
          from backend. Delete all the hardlinks including
          .glusters hardlink as well.
       2. Access the each hardlink of the file including
          original from the mount.

    The step 2 will send lookup to the brick where the files
    are deleted from backend and returns with ENOENT. On
    ENOENT, server xlator forgets the inode if there are
    no dentries associated with it. But in case hardlinks,
    the forget won't be called as dentries (other hardlink
    files) are associated with the inode. Hence bitrot stube
    won't delete it's context failing the data self heal.

    Fix:
    Bitrot-stub should delete the inode context on getting
    ENOENT during lookup.

    >Change-Id: Ice6adc18625799e7afd842ab33b3517c2be264c1
    >BUG: 1373520
    >Signed-off-by: Kotresh HR <khiremat at redhat.com>
    >Reviewed-on: http://review.gluster.org/15408
    >Smoke: Gluster Build System <jenkins at build.gluster.org>
    >NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    >CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
    >Reviewed-by: Raghavendra Bhat <raghavendra at redhat.com>
    (cherry picked from commit b86a7de9b5ea9dcd0a630dbe09fce6d9ad0d8944)

    Change-Id: Ice6adc18625799e7afd842ab33b3517c2be264c1
    BUG: 1374567
    Signed-off-by: Kotresh HR <khiremat at redhat.com>
    Reviewed-on: http://review.gluster.org/15434
    Smoke: Gluster Build System <jenkins at build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    Reviewed-by: Atin Mukherjee <amukherj at redhat.com>
    Reviewed-by: Aravinda VK <avishwan at redhat.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the Docs Contact for the bug.


More information about the Bugs mailing list