dCache / dcache

dCache - a system for storing and retrieving huge amounts of data, distributed among a large number of heterogenous server nodes, under a single virtual filesystem tree with a variety of standard access methods
https://dcache.org
291 stars 136 forks source link

migration module marks copy as sticky, even though -tmode=cached #1801

Closed calestyo closed 9 years ago

calestyo commented 9 years ago

Hi.

When doing e.g.:

\sl 000079F134611A6E451985473D4048A5F71C rep ls -l -a 000079F134611A6E451985473D4048A5F71C
lcg-lrz-dc02_3:
    000079F134611A6E451985473D4048A5F71C <C-------X--L(0)[0]> 2813763 si={atlas:LocalGroupDisk}

and then:

migration copy -pnfsid=000079F134611A6E451985473D4048A5F71C -smode=same -tmode=cached -target=pgroup replicas

I'd expect from the documentation of -tmode=cached, that the new replica is cached only but not sticky. However:

\sl 000079F134611A6E451985473D4048A5F71C rep ls -l -a 000079F134611A6E451985473D4048A5F71C
lcg-lrz-dc29_2:
    000079F134611A6E451985473D4048A5F71C <C-------X--L(0)[0]> 2813763 si={atlas:LocalGroupDisk}
lcg-lrz-dc02_3:
    000079F134611A6E451985473D4048A5F71C <C-------X--L(0)[0]> 2813763 si={atlas:LocalGroupDisk}```

dCache 2.13.4

Chris.

gbehrmann commented 9 years ago

Repeat the rep ls after 5 minutes and check if it is still sticky.

gbehrmann commented 9 years ago

See also the release notes of 1.9.1-2.

calestyo commented 9 years ago

Taking everything back, claiming the opposite :D

btw: When I have you on the line: Any idea why this still works:

chimera=> VALUES (inode2path('000079F134611A6E451985473D4048A5F71C'));
                                                      column1                                                       
--------------------------------------------------------------------------------------------------------------------
 /pnfs/lrz-muenchen.de/data/atlas/dq2/atlaslocalgroupdisk/rucio/user/chmitt/eb/ce/user.chmitt.005080._00139.el.root
(1 row)

but e.g.:

chimera=> VALUES (inode2path('000000000000000000000000000000000000'));
 column1 
---------

(1 row)

or

chimera=> VALUES (path2inode('000000000000000000000000000000000000', '/pnfs/lrz-muenchen.de/data/atlas/dq2/atlaslocalgroupdisk/rucio/user/chmitt/eb/ce/user.chmitt.005080._00139.el.root'));
 column1 
---------

(1 row)

gives back 1 empty row?

gbehrmann commented 9 years ago

For the latter, I think the path should be relative (not start with a slash).

The the former, inode2path is simply buggy when applied to the root inode - it iterates up the tree, prefixing /name at every step. For the root inode the loop exits right away and thus the string ends up being empty.