Description of problem:
=======================
try to rename Directories from multiple client at same time. e.g. from one mount give mv <src> <dest> and from another mv <src> <dest1> (where dest and dest1 is not hashing to same) or simply from one mount point mv <src> <dest> and from another mount point mv <src> <dest> .
Take snapshot when those operations are not completed on all sub-volumes. On restoring that snapshot
- same gfid for different Directories (at same level and/or diffrent level)
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. create few files and Directories on mount point.
[root@OVM5 race]# mkdir src dest
[root@OVM5 race]# touch src/f{1..5}
[to reproduce race, we are putting breakpoint at dht_rename_hashed_dir_cbk for both rename operation]
3. from one mount point execute 'mv src dest' and from other mount point execute 'mv dest src'
Now take snapshot
4. restore that snapshot and verify data from another mount and bricks also
[root@OVM5 race]# ls -lR
.:
total 0
drwxr-xr-x 3 root root 51 Jul 10 16:51 src
./src:
total 0
drwxr-xr-x 2 root root 18 Jul 10 16:51 dest
drwxr-xr-x 2 root root 18 Jul 10 16:51 dest
./src/dest:
total 0
./src/dest:
total 0
Actual results:
===============
- same gfid for different Directories
Expected results:
=================
- no two directories should have same gfid