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.
CHANGE: http://review.gluster.com/695 (Change-Id: I058ed91494e1a9bbcf5e6e6c49e8ee4f7e014e23) merged in release-3.2 by Anand Avati (avati)
CHANGE: http://review.gluster.com/2521 (cluster/afr: Handle split-brain/all-fool xattrs for directory) merged in master by Vijay Bellur (vijay)
CHANGE: http://review.gluster.com/2541 (cluster/afr: EIO should overwrite ENOENT in lookup) merged in master by Vijay Bellur (vijay)
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)
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.