[LU-380] POSIX: write.15: time stamps incorrect: mtime, ctime were not updated Created: 31/May/11  Updated: 27/Sep/16  Resolved: 27/Sep/16

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.1.0, Lustre 2.1.1, Lustre 2.1.2, Lustre 1.8.8, Lustre 1.8.7, Lustre 1.8.6
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Jian Yu Assignee: WC Triage
Resolution: Cannot Reproduce Votes: 0
Labels: None
Environment:

Lustre Branch: b1_8
Lustre Build: http://newbuild.whamcloud.com/job/lustre-b1_8/61/
Distro/Arch: CentOS5.6/x86_64(OFED 1.5.3, ext4)


Severity: 3
Bugzilla ID: 23,300
Rank (Obsolete): 10175

 Description   

Here is the result of running the LSB-VSX POSIX test suite (lts_vsx-pcts2.0beta2.tgz):
https://maloo.whamcloud.com/test_sets/f610526e-8b52-11e0-aab9-52540025f9af

The baseline is ext4.

####################################################
Test Name: write.15 Failed

	Test Description:
The time fields st_ctime and st_mtime are marked for update by a call
write().
Posix Ref: Component WRITE Assertion 6.4.2.2-25(A)

	Test Strategy:
CREATE new file using creat()
SAVE timestamps using savtimes() - (genlib)
WRITE MSG_LEN bytes to file
VERIFY that st_ctime and st_mtime have been updated using chktimes() -
(genlib)
CLOSE file descriptor using close()
UNLINK file
REPEAT for FIFO and pipe:
  SAVE timestamps using savtimes()/fsavtimes() - (genlib)
  WRITE MSG_LEN bytes to file
  VERIFY that st_ctime and st_mtime have been updated using
  chktimes()/fchktimes()
   - (genlib)

	Test Information:
time stamps incorrect: mtime, ctime were not updated



 Comments   
Comment by Jian Yu [ 17/Jun/11 ]

Lustre Branch: v1_8_6_RC2
Lustre Build: http://newbuild.whamcloud.com/job/lustre-b1_8/80/
e2fsprogs Build: http://newbuild.whamcloud.com/job/e2fsprogs-master/40/
Distro/Arch: RHEL5/x86_64(OFED 1.5.3.1, kernel version: 2.6.18-238.12.1.el5_lustre)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/2cd4d244-98d1-11e0-9a27-52540025f9af

The baseline is ext4.

Comment by Jian Yu [ 18/Jul/11 ]

Lustre Tag: v2_0_65_0
Lustre Build: http://newbuild.whamcloud.com/job/lustre-master/204/
e2fsprogs Build: http://newbuild.whamcloud.com/job/e2fsprogs-master/42/
Distro/Arch: RHEL5/x86_64(OFED 1.5.3.1, kernel version: 2.6.18-238.12.1.el5)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/e4ede34c-b13c-11e0-b33f-52540025f9af

The baseline is ext4.

Test unlink.6 failed as follows:

####################################################
Test Name: unlink.6 Failed

	Test Description:
A successful call to unlink() marks for update the st_ctime and the
st_mtime field of the parent directory.  When the file's link count
does not become zero after a successful call to unlink(), the st_ctime
field of the file is marked for update.
Posix Ref: Component UNLINK Assertion 5.5.1.2-30(A)
Posix Ref: Component UNLINK Assertion 5.5.1.2-31(A)

	Test Strategy:
FOR an ordinary file and a FIFO (when not testing XNFS)
  CREATE file using creat() or mkfifo()
  CLOSE file using close()
  CREATE link to directory using link()
  OBTAIN file status information using stat() for the parent directory
  SAVE times stamps using savtimes() - (genlib)
  UNLINK link using unlink()
  VERIFY that unlink() returned 0
  VERIFY that the link no longer exists using eaccess() - (genlib)
  VERIFY that st_ctime has been updated using chktimes()
  OBTAIN file status information using stat() for the parent directory
  VERIFY that the st_ctime and st_mtime of the parent directory have
  changed
  UNLINK file using unlink()

	Test Information:
remaining link time stamps incorrect: ctime was not updated
remaining link time stamps incorrect: ctime was not updated

####################################################
Comment by Jian Yu [ 25/Aug/11 ]

Lustre Tag: v2_1_0_0_RC1
Lustre Build: http://newbuild.whamcloud.com/job/lustre-master/273
e2fsprogs Build: http://newbuild.whamcloud.com/job/e2fsprogs-master/42/
Distro/Arch: RHEL6/x86_64(in-kernel OFED)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/0aaa9fba-cefe-11e0-8d02-52540025f9af

The baseline is ext4.

Comment by Jian Yu [ 11/Oct/11 ]

Lustre Tag: v1_8_7_WC1_RC1
Lustre Build: http://newbuild.whamcloud.com/job/lustre-b1_8/142/
e2fsprogs Build: http://newbuild.whamcloud.com/job/e2fsprogs-master/65/
Distro/Arch: RHEL5/x86_64(server, OFED 1.5.3.2, ext4-based ldiskfs), RHEL6/x86_64(client, in-kernel OFED)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/30866dc0-f3ef-11e0-908b-52540025f9af

The baseline is ext4.

Comment by Jian Yu [ 13/Feb/12 ]

Lustre Tag: v2_1_1_0_RC2
Lustre Build: http://build.whamcloud.com/job/lustre-b2_1/41/
e2fsprogs Build: http://build.whamcloud.com/job/e2fsprogs-master/200/
Distro/Arch: RHEL6/x86_64 (kernel version: 2.6.32-220.el6)
Network: IB (in-kernel OFED)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/ffbf6c1c-5629-11e1-af68-5254004bbbd3

The baseline is ext4.

Comment by Jian Yu [ 11/May/12 ]

Lustre Tag: v1_8_8_WC1_RC1
Lustre Build: http://build.whamcloud.com/job/lustre-b1_8/195/
e2fsprogs Build: http://build.whamcloud.com/job/e2fsprogs-master/278/
Distro/Arch: RHEL5.8/x86_64(server, ext4-based ldiskfs), RHEL6.2/x86_64(client)
Network: IB (in-kernel OFED)

POSIX compliance testing report: https://maloo.whamcloud.com/test_sets/99712946-9b2a-11e1-a0a0-52540035b04c

The baseline is ext4.

Comment by Jian Yu [ 30/May/12 ]

Lustre Tag: v2_1_2_RC2
Lustre Build: http://build.whamcloud.com/job/lustre-b2_1/86/
e2fsprogs Build: http://build.whamcloud.com/job/e2fsprogs-master/301/
Distro/Arch: RHEL6.2/x86_64 (kernel version: 2.6.32-220.17.1.el6)
Network: IB (in-kernel OFED)

The same issue occurred: https://maloo.whamcloud.com/test_sets/a50bad22-a993-11e1-9ad2-52540035b04c

Comment by Jian Yu [ 07/Aug/12 ]

Comment from Vladimir V. Saveliev in Bugzilla 23300:
"timestamps are not updated when file is a FIFO.
Such files do not have stripes, write to such files does not call lustre functions, the only call
to filesystem when writing to a FIFO is dirty_inode() of super_block operaitons, which is not
provided by lustre. So, mtime/ctime do not get sent to mds on write/read."

Comment by Jian Yu [ 07/Aug/12 ]

After updating the LSB-VSX POSIX test suite to disable FIFO test in write.15 and unlink.6, Lustre POSIX compliance testing passed on T.write and T.unlink test sets (baseline is ext4):

Lustre branch: master
Lustre build: http://build.whamcloud.com/job/lustre-master/766/
https://maloo.whamcloud.com/test_sets/3df07240-e088-11e1-a388-52540035b04c

Comment by Andreas Dilger [ 27/Sep/16 ]

Closing this old ticket.

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