HSM _not only_ small fixes and to do list goes here (LU-3647)

[LU-3814] Fix sanity-hsm test 24: "Release does not change a/mtime (i/o)" Created: 22/Aug/13  Updated: 16/Oct/13  Resolved: 05/Sep/13

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.5.0
Fix Version/s: None

Type: Technical task Priority: Critical
Reporter: Jodi Levi (Inactive) Assignee: John Hammond
Resolution: Duplicate Votes: 0
Labels: HSM

Attachments: File hsm-times.sh    
Rank (Obsolete): 9857

 Comments   
Comment by Jinshan Xiong (Inactive) [ 22/Aug/13 ]

John, please take a look since you're looking at this piece of code.

Comment by John Hammond [ 27/Aug/13 ]

Please see

http://review.whamcloud.com/7442 LU-3832 clio: honor O_NOATIME

http://review.whamcloud.com/7461 LU-3811 hsm: handle file ownership and timestamps

http://review.whamcloud.com/7472 LU-3814 hsm: strengthen sanity-hsm test 24

Comment by John Hammond [ 28/Aug/13 ]

On http://review.whamcloud.com/7461 there was some discussion about setting the inode timestamps in mdt_hsm_release(). To test this I compared 7442+7461 with setting LA_

{A,M,C}TIME to 7442+7461 without setting LA_{A,M,C}

TIME. The script I used (hsm-times.sh) is attached. In the timestamp lines the first column is the current time, the second, third, and fourth are the atime, mtime, and ctime. I ran simultaneously on two nodes so the command execution times are all the same upto 1 second.

### without LA_ATIME | LA_MTIME | LA_CTIME
1377703320:
# sys_creat /mnt/lustre/f0
1377703320: 1377703320 1377703320 1377703320
1377703325: 1377703320 1377703320 1377703320
# dd if=/dev/zero of=/mnt/lustre/f0 bs=1M count=10 conv=fsync status=noxfer
10+0 records in
10+0 records out
1377703325: 1377703320 1377703325 1377703325
1377703330: 1377703320 1377703325 1377703325
# dd if=/mnt/lustre/f0 of=/dev/null bs=1M count=10 status=noxfer
10+0 records in
10+0 records out
1377703330: 1377703330 1377703325 1377703325
1377703335: 1377703330 1377703325 1377703325
# dd if=/dev/zero of=/mnt/lustre/f0 bs=1M count=1 conv=fsync,notrunc status=noxfer
1+0 records in
1+0 records out
1377703335: 1377703330 1377703335 1377703335
1377703340: 1377703330 1377703335 1377703335
# remount_clients
1377703341: 1377703330 1377703335 1377703335
1377703346: 1377703330 1377703335 1377703335
# lfs hsm_archive /mnt/lustre/f0
1377703346: 1377703330 1377703335 1377703335
1377703361: 1377703330 1377703335 1377703335
1377703366: 1377703330 1377703335 1377703335
# lfs hsm_release /mnt/lustre/f0
1377703366: 1377703330 1377703335 1377703335
1377703371: 1377703330 1377703335 1377703335
# remount_clients
1377703371: 1377703320 1377703325 1377703325

### with LA_ATIME | LA_MTIME | LA_CTIME
1377703320:
# sys_creat /mnt/lustre/f0
1377703320: 1377703320 1377703320 1377703320
1377703325: 1377703320 1377703320 1377703320
# dd if=/dev/zero of=/mnt/lustre/f0 bs=1M count=10 conv=fsync status=noxfer
10+0 records in
10+0 records out
1377703325: 1377703320 1377703325 1377703325
1377703330: 1377703320 1377703325 1377703325
# dd if=/mnt/lustre/f0 of=/dev/null bs=1M count=10 status=noxfer
10+0 records in
10+0 records out
1377703330: 1377703330 1377703325 1377703325
1377703335: 1377703330 1377703325 1377703325
# dd if=/dev/zero of=/mnt/lustre/f0 bs=1M count=1 conv=fsync,notrunc status=noxfer
1+0 records in
1+0 records out
1377703335: 1377703330 1377703335 1377703335
1377703340: 1377703330 1377703335 1377703335
# remount_clients
1377703341: 1377703330 1377703335 1377703335
1377703346: 1377703330 1377703335 1377703335
# lfs hsm_archive /mnt/lustre/f0
1377703346: 1377703330 1377703335 1377703335
1377703361: 1377703330 1377703335 1377703335
1377703366: 1377703330 1377703335 1377703335
# lfs hsm_release /mnt/lustre/f0
1377703366: 1377703330 1377703335 1377703335
1377703371: 1377703330 1377703335 1377703335
# remount_clients
1377703371: 1377703330 1377703335 1377703335

Without setting the timestamps, after release and remount, all timestamps have reverted to those from the first write.

I tried increasing the sleep duration to 30, 60, and 120, and still saw that without setting the timestamps in mdt_hsm_release() the final timestamps would be incorrect.

Comment by Jinshan Xiong (Inactive) [ 28/Aug/13 ]

I see. Thanks for the experiment.

Comment by John Hammond [ 05/Sep/13 ]

Duplicate of LU-3811.

Generated at Sat Feb 10 01:37:07 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.