Bug 765528 (GLUSTER-3796) - split-brain/all-fool xattr directory self-heal should try to merge the entries
Summary: split-brain/all-fool xattr directory self-heal should try to merge the entries
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: GLUSTER-3796
Product: GlusterFS
Classification: Community
Component: replicate
Version: pre-release
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Pranith Kumar K
QA Contact: Shwetha Panduranga
URL:
Whiteboard:
Depends On:
Blocks: 817967
TreeView+ depends on / blocked
 
Reported: 2011-11-09 10:11 UTC by Pranith Kumar K
Modified: 2018-11-27 20:22 UTC (History)
2 users (show)

Fixed In Version: glusterfs-3.4.0
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-24 17:49:59 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Pranith Kumar K 2011-11-09 10:11:00 UTC
In case of split-brain, all-fool xattrs, the self-heal of that dir should be creating the entries that are missing on either of the subvols.

Comment 1 Anand Avati 2011-11-09 14:57:24 UTC
CHANGE: http://review.gluster.com/695 (Change-Id: I058ed91494e1a9bbcf5e6e6c49e8ee4f7e014e23) merged in release-3.2 by Anand Avati (avati)

Comment 2 Anand Avati 2011-12-27 10:18:11 UTC
CHANGE: http://review.gluster.com/2521 (cluster/afr: Handle split-brain/all-fool xattrs for directory) merged in master by Vijay Bellur (vijay)

Comment 3 Anand Avati 2011-12-29 06:47:19 UTC
CHANGE: http://review.gluster.com/2541 (cluster/afr: EIO should overwrite ENOENT in lookup) merged in master by Vijay Bellur (vijay)

Comment 4 Anand Avati 2012-03-13 02:37:32 UTC
CHANGE: http://review.gluster.com/2674 (cluster/afr: Handle split-brain/all-fool xattrs for directory) merged in release-3.2 by Anand Avati (avati)

Comment 5 Shwetha Panduranga 2012-06-01 07:41:26 UTC
Case 1 :- Replicate Volume (1x3)
--------------------------------
1. create a replicate volume
2. set self-heal daemon off for the volume
3. start the volume
4. create a fuse/nfs mount. 
5. mkdir testdir1 on fuse/nfs mount
6. bring down brick2, brick3
7. execute "dd if=/dev/urandom of=testdir1/f1 bs=1M count=1" on the mount
8. bring back brick2, brick3
9. bring down brick3, brick1
10. execute "dd if=/dev/urandom of=testdir1/f2 bs=1M count=1" on the mount
11. bring back brick3, brick1
12. bring down brick1, brick2
13. execute "dd if=/dev/urandom of=testdir1/f3 bs=1M count=1" on the mount
14. bring back brick1, brick2
15. execute "ls -l testdir1/f1" on mount
16. execute "ls -l testdir1/f2" on mount
17. execute "ls -l testdir1/f3" on mount

Expected Output:-
~~~~~~~~~~~~~~~~~
file f1 has to be self-healed(force merge) to brick2,brick3
file f2 has to be self-healed(force merge) to brick3,brick1
file f3 has to be self-healed(force merge) to brick1,brick2

Verified the fix on 3.3.0qa45. Bug is fixed.


Note You need to log in before you can comment on or make changes to this bug.