On 01/18/2016 03:31 PM, Assaf Gordon wrote:
On 01/18/2016 02:27 PM, Pádraig Brady wrote:
On 18/01/16 18:18, Assaf Gordon wrote:
FAIL: tests/cp/preserve-slink-time
-2016-01-18 12:21:28.294123000 -0500
+2016-01-18 12:21:28.296528000 -0500
cp -Pp didn't seem to preserve the timestamp on GPFS.
This might be some weird bug in GPFS, not in CP.
If I add a delay between the "ln -s" and "cp", then everything is fine.
Compare (with delay):
===
$ for i in {1..5} ; do echo "round $i" ; rm -f dangle1 dd1 ; ( ln -s
no-such-file-1 dangle1 ; sleep 1 ; ./src/cp -Pp dangle1 dd1 ; stat --format=%y,%n dangle1
; stat --format=%y,%n dd1 ) ; done
round 1
2016-01-18 15:34:43.079396000 -0500,dangle1
2016-01-18 15:34:43.079396000 -0500,dd1
round 2
2016-01-18 15:34:44.086766000 -0500,dangle1
2016-01-18 15:34:44.086766000 -0500,dd1
round 3
2016-01-18 15:34:45.094546000 -0500,dangle1
2016-01-18 15:34:45.094546000 -0500,dd1
round 4
2016-01-18 15:34:46.102574000 -0500,dangle1
2016-01-18 15:34:46.102574000 -0500,dd1
round 5
2016-01-18 15:34:47.109094000 -0500,dangle1
2016-01-18 15:34:47.109094000 -0500,dd1
===
and without delay ("cp -Pp" is executable immediately after "ln -s", perhaps
some GPFS issue prevents correct timestamping?):
===
$ for i in {1..5} ; do echo "round $i" ; rm -f dangle1 dd1 ; ( ln -s
no-such-file-1 dangle1 ; ./src/cp -Pp dangle1 dd1 ; stat --format=%y,%n dangle1 ; stat
--format=%y,%n dd1 ) ; done
round 1
2016-01-18 15:34:27.928185000 -0500,dangle1
2016-01-18 15:34:27.929259000 -0500,dd1
round 2
2016-01-18 15:34:27.933783000 -0500,dangle1
2016-01-18 15:34:27.934935000 -0500,dd1
round 3
2016-01-18 15:34:27.939425000 -0500,dangle1
2016-01-18 15:34:27.940431000 -0500,dd1
round 4
2016-01-18 15:34:27.945025000 -0500,dangle1
2016-01-18 15:34:27.945979000 -0500,dd1
round 5
2016-01-18 15:34:27.950339000 -0500,dangle1
2016-01-18 15:34:27.951285000 -0500,dd1
===
regards,
- assaf