+++ This bug was initially created as a clone of Bug #886998 +++ Description of problem: 1) Afr Trash directory filtering needs to happen so that 3.4 afr filters 3.3's .landfill directory 2) Strict readdir implementation needs to be removed in afr. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: --- Additional comment from Vijay Bellur on 2013-01-23 04:26:22 EST --- CHANGE: http://review.gluster.org/4309 (cluster/afr: Remove strict-readdir implementation) merged in master by Anand Avati (avati) --- Additional comment from Pranith Kumar K on 2013-03-12 05:49:05 EDT --- http://review.gluster.org/4640 --- Additional comment from Anand Avati on 2013-07-12 06:49:50 EDT --- REVIEW: http://review.gluster.org/4640 (cluster/afr: Handle REPLICATE_TRASH_DIR from old bricks) posted (#2) for review on master by Pranith Kumar Karampuri (pkarampu)
https://code.engineering.redhat.com/gerrit/#/c/10186/
.landfill directory used to be present in root of the brick in earlier versions, now it is moved inside .glusterfs in root directory. This patch makes sure to filter .landfill directory in readdir of the mount. Please look at http://review.gluster.org/#/c/4640/3/tests/bugs/bug-886998.t for detailed explanation of other test cases.
Verified the fix on the build : ============================= glusterfs 3.4.0.20rhs built on Aug 14 2013 09:04:38 Case1 : http://review.gluster.org/#/c/4640/3/tests/bugs/bug-886998.t Case2 : http://review.gluster.org/#/c/4309/3/tests/bugs/886998/strict-readdir.t Test Case1 and Test Case2 works fine. Case3 : This is to be executed during upgrade testing ====================================================== 1. Before upgrade check ".landfill" directory to be present in <brick_abs_path> 2. After upgrade ".landfill" directory will be moved to ".glusterfs/landfill" . This happens when bricks are restarted. Changing the QA Contact to Sachi to test Case3.
How to create .landfill directory ================================= 1. Create a replicate volume ( 1 x 2 ). Start the volume. 2. Create a fuse mount. From fuse mount execute: for i in `seq 1 10`;do echo "Hello World $i" > file.$i ; mkdir testdir.$i ; echo "Hello World $i" > testdir.$i/file.$i ; done 3. Bring down brick1 . 4. From mount point delete few files and directories: rm -f file.{1..3} rm -rf testdir.{1..3} 5. Bring back brick1. 6. Bring down brick0 7. From mount point delete few files and directories: rm -f file.{7..10} rm -rf testdir.{7..10} 8. Bring back brick0 9. On both the bricks check for .landfill directory.
Verified on: glusterfs 3.4.0.20rhs built on Aug 14 2013 09:04:38 After update from U5 -> 2.1 and starting the volume moves the .landfill directory from / to .glusterfs/landfill
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-1262.html