Hide Forgot
The problem is with read_child in afr. If the read_child changes in between 2 consecutive readdir()s, mostly due to revalidates, readdir()s happen from different subvolumes, resulting in erroneous offsets and hence causing duplication/less entries than the actual in readdir().
Replicate volume with replica count 2. Created a directory on the mount point and chowned it to the normal user and started running tests as normal user in that directory. (1 fuse, 1 - 3.2.1 fuse client and 1 nfs client). Did selfheal tests parallel selfheal, kernel untar and rm of untarred kernel in parallel etc. Arequal checksum of the linux kernel directory shows different checksum (also different number of files) for each run where as the backend checksums are same. doing ls on the mount point shows 2 entries of the directory some times(where the tests aree being run as normal user).
PATCH: http://patches.gluster.com/patch/7784 in release-3.2 (cluster/afr: previous read_child should take precedence over priv->read_child)
PATCH: http://patches.gluster.com/patch/7785 in release-3.2 (cluster/afr: save xattr of all the children in lookup_cbk)
Its fixed now and now ls does not show 2 entries and the arequal-checksum is also correct.
PATCH: http://patches.gluster.com/patch/7888 in release-3.1 (cluster/afr: save xattr of all the children in lookup_cbk)
PATCH: http://patches.gluster.com/patch/7889 in release-3.1 (cluster/afr: previous read_child should take precedence over priv->read_child)
Repeated the test. i.e. untarred linux kernel. Arequal checksum of the untarred directory on the mount point and the backend was same.
*** Bug 3079 has been marked as a duplicate of this bug. ***
*** Bug 3274 has been marked as a duplicate of this bug. ***