Description of problem: ======================= Create Directory from mountpoint and while creation is in progress (Directory created only on hashed sub-volume), execute rename of that Directory(destination Directory does not exist and both Source and Destination hash to same sub-volume here) i.e. from one mout point :- mkfir dir1 from another mount point mv dir1 dir2 Take snapshot when both operation is not completed on all up sub-volumes On restoring that snapshot - same gfid for two directories at same level - sometimes few files inside those directories are not listed on mount and not accessible Version-Release number : ========================= 3.6.0.24-1.el6rhs.x86_64 How reproducible: ================= always Steps to Reproduce: ==================== 1. create and mount distributed volume. (mount on multiple client) 2. [to reproduce race, we are putting breakpoint at dht_mkdir_hashed_dir_cbk and dht_rename_hashed_dir_cbk] 3. from one mount point execute [root@OVM1 race]# mkdir inprogress bricks:- [root@OVM5 race]# tree /brick*/race/ /brick1/race/ /brick2/race/ └── inprogress /brick3/race/ 1 directory, 0 files from another mount point:- [root@OVM1 race1]# mv inprogress rename bricks:- [root@OVM5 race]# tree /brick*/race/ /brick1/race/ └── rename /brick2/race/ └── inprogress /brick3/race/ └── inprogress 3 directories, 0 files 4. now take a snapshot 5. restore that snapshot and verify data on mount and bricks mount:- [root@OVM5 race]# ls -lR .: total 0 drwxr-xr-x 2 root root 18 Jul 10 16:55 inprogress drwxr-xr-x 2 root root 18 Jul 10 16:55 rename ./inprogress: total 0 ./rename: total 0 on restoring snap on bricks :- [root@OVM5 race]# tree /var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick*/race/ /var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick1/race/ ├── inprogress └── rename /var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick2/race/ ├── inprogress └── rename /var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick3/race/ ├── inprogress └── rename 6 directories, 0 files [root@OVM5 race]# getfattr -d -m . -e hex /var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick*/race/* getfattr: Removing leading '/' from absolute path names # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick1/race/inprogress trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x0000000100000000aaaaaaaaffffffff # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick1/race/rename trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x00000001000000000000000055555554 # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick2/race/inprogress trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x00000001000000000000000055555554 # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick2/race/rename trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x00000001000000000000000055555554 # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick3/race/inprogress trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x000000010000000055555555aaaaaaa9 # file: var/run/gluster/snaps/d805a68ad7d5419f863eab5d387ff6c1/brick3/race/rename trusted.gfid=0x5b3c1a8ca4b84f27912880710a165fb7 trusted.glusterfs.dht=0x000000010000000055555555aaaaaaa9 Actual results: =============== - same gfid for source and destination directory - sometimes files inside those directories are not listed on mount and Expected results: ================= - no two directory should have same gfid - all files inside those Directories should be accessible from mount point
*** This bug has been marked as a duplicate of bug 1118780 ***