[Bugs] [Bug 1411010] New: atime becomes zero when truncating file via ganesha ( or gluster-NFS)
bugzilla at redhat.com
bugzilla at redhat.com
Sat Jan 7 13:21:20 UTC 2017
https://bugzilla.redhat.com/show_bug.cgi?id=1411010
Bug ID: 1411010
Summary: atime becomes zero when truncating file via ganesha
(or gluster-NFS)
Product: GlusterFS
Version: 3.9
Component: posix
Keywords: Patch, Triaged
Assignee: ndevos at redhat.com
Reporter: ndevos at redhat.com
CC: bugs at gluster.org
Depends On: 1401777
+++ This bug was initially created as a clone of Bug #1401777 +++
+++ This bug was initially created as a clone of Bug #1401122 +++
Description of problem:
Ganesha and gluster-NFS can both issue an fop_setattr(GF_SET_ATTR_MTIME)
without also setting GF_SET_ATTR_ATIME. This will cause posix_setattr() to
issue lutimes() with zero value for atime.
There are slightly different ways to cause the issue in gluster-NFS and
Ganesha, but end result is the same.
Version-Release number of selected component (if applicable):
All versions of gluster
How reproducible: Every time
Steps to Reproduce (gluster-NFS):
1. cp /vmlinuz /nfs/
2. dd if=/vmlinuz of=/nfs/vmlinuz conv=nocreat
3. stat /nfs/vmlinuz
Steps to Reproduce (Ganesha):
1. cp /vmlinuz /ganesha/
2. truncate -s 1000 /ganesha/vmlinuz
3. stat /ganesha/vmlinuz
Actual results:
root at vsan125:~# stat /nfs/vmlinuz
File: ‘/nfs/vmlinuz’
Size: 6579344 Blocks: 12851 IO Block: 1048576 regular file
Device: 1ch/28d Inode: 13728026437677438595 Links: 1
Access: (0600/-rw-------) Uid: (65534/ nobody) Gid: (4294967294/ UNKNOWN)
Access: 1969-12-31 16:00:00.000000000 -0800
Modify: 2016-12-02 11:07:36.000000000 -0800
Change: 2016-12-02 11:07:36.000000000 -0800
Birth: -
Expected results:
Access time should not be 0.
Additional info:
Strace of glusterfsd setting atime to zero (in posix_do_utimes):
16332 utimensat(AT_FDCWD,
"/brick/gv5/.glusterfs/ac/b6/acb67218-b076-464e-b6a4-d153d7391e76", {{0, 0},
{1480627988, 0}}, AT_SYMLINK_NOFOLLOW
I have attached a proposed solution.
--- Additional comment from Niels de Vos on 2016-12-06 05:47 CET ---
This patch uses the atime+mtime for missing values from the locally executed
lstat() instead of the values from the passed IATT. It otherwise is pretty much
the same as the other proposed change.
--- Additional comment from Worker Ant on 2016-12-06 06:06:47 CET ---
REVIEW: http://review.gluster.org/16034 (posix: make sure atime and mtime are
set when calling lutimes()) posted (#2) for review on master by Niels de Vos
(ndevos at redhat.com)
--- Additional comment from Worker Ant on 2016-12-06 07:41:58 CET ---
REVIEW: http://review.gluster.org/16034 (posix: make sure atime and mtime are
set when calling lutimes()) posted (#3) for review on master by Niels de Vos
(ndevos at redhat.com)
--- Additional comment from Worker Ant on 2016-12-06 07:47:18 CET ---
REVIEW: http://review.gluster.org/16034 (posix: make sure atime and mtime are
set when calling lutimes()) posted (#4) for review on master by Niels de Vos
(ndevos at redhat.com)
--- Additional comment from Worker Ant on 2017-01-06 18:33:15 CET ---
COMMIT: http://review.gluster.org/16034 committed in master by Jeff Darcy
(jdarcy at redhat.com)
------
commit 9bed81ada6f91f998e9abd915b18e3f06557cdcb
Author: Niels de Vos <ndevos at redhat.com>
Date: Tue Dec 6 07:46:52 2016 +0100
posix: make sure atime and mtime are set when calling lutimes()
When overwriting an existing file with O_TRUNC, the 'atime' was set to
0, meaning the Epoch (01-Jan-1970 UTC). However, the 'mtime' gets
updated correcty.
In case 'atime' or 'mtime' is not passed in the 'struct iatt', the time
values passed to the systemcall are taken from the current values are
returned by lstat().
Change-Id: I7021b7161dcd6c9a3e515d98f6d4847533c434b3
BUG: 1401777
Reported-by: Eivind Sarto <eivindsarto at gmail.com>
Signed-off-by: Niels de Vos <ndevos at redhat.com>
Reviewed-on: http://review.gluster.org/16034
Smoke: Gluster Build System <jenkins at build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
Reviewed-by: Raghavendra Bhat <raghavendra at redhat.com>
CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
Reviewed-by: Kaleb KEITHLEY <kkeithle at redhat.com>
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1401777
[Bug 1401777] atime becomes zero when truncating file via ganesha (or
gluster-NFS)
--
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=61igZRaj3R&a=cc_unsubscribe
More information about the Bugs
mailing list