[Bugs] [Bug 1405130] New: `gluster volume heal <vol-name> split-brain' does not heal if data/metadata/entry self-heal options are turned off

bugzilla at redhat.com bugzilla at redhat.com
Thu Dec 15 16:41:56 UTC 2016


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

            Bug ID: 1405130
           Summary: `gluster volume heal <vol-name> split-brain' does not
                    heal if data/metadata/entry self-heal options are
                    turned off
           Product: GlusterFS
           Version: 3.8
         Component: replicate
          Severity: high
          Assignee: bugs at gluster.org
          Reporter: ravishankar at redhat.com
                CC: bugs at gluster.org, ravishankar at redhat.com,
                    ssampat at redhat.com
        Depends On: 1233608, 1234054, 1405126
            Blocks: 1223636



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

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

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

Description of problem:
------------------------
If a file in data/metadata/entry split-brain is attempted to be healed using
the `gluster volume heal <vol-name> split-brain' command, the heal fails if the
respective data/metadata/entry self-heal volume option is turned off. This
should not be the case, as glfsheal should not take these options into
consideration.

See below, sample output of the command -

# gluster v heal rep2 split-brain source-brick 10.70.37.134:/rhs/brick6/b1/
/bar
Healing /bar failed: File not in split-brain.
Volume heal failed.

# gluster v heal rep2 split-brain bigger-file /bar                              
Healing /bar failed: File not in split-brain.
Volume heal failed.

Volume configuration -

# gluster v info rep2

Volume Name: rep2
Type: Replicate
Volume ID: 0bf8fb07-8b09-4be8-94e7-29f4d3d7632f
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 10.70.37.208:/rhs/brick6/b1
Brick2: 10.70.37.134:/rhs/brick6/b1
Options Reconfigured:
cluster.entry-self-heal: off
cluster.data-self-heal: off
cluster.metadata-self-heal: off
cluster.self-heal-daemon: off
features.uss: on
features.quota-deem-statfs: on
features.inode-quota: on
features.quota: on
performance.readdir-ahead: on


Version-Release number of selected component (if applicable):
--------------------------------------------------------------
glusterfs-3.7.1-3.el6rhs.x86_64

How reproducible:
------------------
100%

Steps to Reproduce:
--------------------
1. Set the following options on a 1x2 volume -

cluster.entry-self-heal: off
cluster.data-self-heal: off
cluster.metadata-self-heal: off
cluster.self-heal-daemon: off

2. Kill one brick of the replica set.
3. From the mount write to an existing file, or perform metadata operations
like chmod.
4. Start the volume with force.
5. Kill the other brick in the replica set.
6. Perform data/metadata operations on the same file.
7. Start the volume with force and try to heal the now split-brained file using
the above mentioned CLI.

Actual results:
----------------
Heal fails.

Expected results:
------------------
Heal is expected to succeed.

Additional info:

--- Additional comment from Shruti Sampat on 2015-06-19 07:48:07 EDT ---

Heal also fails when trying to resolve split-brain from the client by setting
extended attributes, when the data/metadata self-heal options are turned off.
With the options turned on, heal works as expected. This needs to be fixed too
as part of this BZ.

--- Additional comment from Ravishankar N on 2015-06-20 12:03:24 EDT ---

The bug in the description needs to be fixed. After the initial discussion with
Shruti, I was giving some more thought to the expected behaviour for comment #1
It seems to me that if the client side heal options are disabled via volume
set, then split-brain healing from mount (via setfattr interface) should also
honour that. i.e. it should not heal the file. 

If a particular client wants to override the heal options which are disabled on
an entire volume basis, it can always mount the volume with the heal options
enabled as fuse mount options. ( --xlator-option *replicate*.data-self-heal=on
etc.)

--- Additional comment from Worker Ant on 2016-12-15 11:40:33 EST ---

REVIEW: http://review.gluster.org/16143 (glfsheal: Explicitly enable self-heal
xlator options) posted (#1) for review on release-3.9 by Ravishankar N
(ravishankar at redhat.com)


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1223636
[Bug 1223636] 3.1 QE Tracker
https://bugzilla.redhat.com/show_bug.cgi?id=1233608
[Bug 1233608] `gluster volume heal <vol-name> split-brain' does not heal if
data/metadata/entry self-heal options are turned off
https://bugzilla.redhat.com/show_bug.cgi?id=1234054
[Bug 1234054] `gluster volume heal <vol-name> split-brain' does not heal if
data/metadata/entry self-heal options are turned off
https://bugzilla.redhat.com/show_bug.cgi?id=1405126
[Bug 1405126] `gluster volume heal <vol-name> split-brain' does not heal if
data/metadata/entry self-heal options are turned off
-- 
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