Skip to content

access time reported as lastModified time #4142

@x3nb63

Description

@x3nb63

i have a CI pipeline triggering on lastModified time and since moving to a minio-operator deployed installation (with DirectPV volumes) it started to self-trigger cause the time always changes whenever it looks ...

Before that, data was stored on a ZFS pool without "Erasure Code" and that pool was mounted with noatime flag. Can't tell if that is related - it is the last time i have seen this pipeline work as expected (it was created fronting this test installation).

Expected Behavior

lastModified should not change unless the thing looked at is actually modified

Current Behavior

mc ls leads to a change of lastModified timestamp, see reproduction below

Steps to Reproduce (for bugs)

its shown best by shell output on a otherwise empty bucket

$ mcli tree -f io/scratch/
io/scratch/
└─ dir
   └─ subdir
      └─ file.txt


# HERE is the problem (watch timestamps)

$ date && mcli ls --json io/scratch/dir/
Fri Jul  1 11:18:49 AM CEST 2022
{
 "status": "success",
 "type": "folder",
 "lastModified": "2022-07-01T11:18:49.609141635+02:00",
 "size": 0,
 "key": "subdir/",
 "etag": "",
 "url": "https://io/scratch/dir/",
 "versionOrdinal": 1
}
$ date && mcli ls --json io/scratch/dir/
Fri Jul  1 11:18:50 AM CEST 2022
{
 "status": "success",
 "type": "folder",
 "lastModified": "2022-07-01T11:18:50.737334413+02:00",
 "size": 0,
 "key": "subdir/",
 "etag": "",
 "url": "https://io/scratch/dir/",
 "versionOrdinal": 1
}
$ date && mcli ls --json io/scratch/dir/
Fri Jul  1 11:18:51 AM CEST 2022
{
 "status": "success",
 "type": "folder",
 "lastModified": "2022-07-01T11:18:51.816087139+02:00",
 "size": 0,
 "key": "subdir/",
 "etag": "",
 "url": "https://io/scratch/dir/",
 "versionOrdinal": 1
}


# dir/subdir/ does not have the problem (cause its bottom of the tree?)

$ date && mcli ls --json io/scratch/dir/subdir/
Fri Jul  1 11:21:10 AM CEST 2022
{
 "status": "success",
 "type": "file",
 "lastModified": "2022-07-01T10:59:32.228+02:00",
 "size": 1,
 "key": "file.txt",
 "etag": "68b329da9893e34099c7d8ad5cb9c940",
 "url": "https://io/scratch/dir/subdir/",
 "versionOrdinal": 1,
 "storageClass": "STANDARD" 
}
$ date && mcli ls --json io/scratch/dir/subdir/
Fri Jul  1 11:21:11 AM CEST 2022
{
 "status": "success",
 "type": "file",
 "lastModified": "2022-07-01T10:59:32.228+02:00",
 "size": 1,
 "key": "file.txt",
 "etag": "68b329da9893e34099c7d8ad5cb9c940",
 "url": "https://io/scratch/dir/subdir/",
 "versionOrdinal": 1,
 "storageClass": "STANDARD" 
}
$ date && mcli ls --json io/scratch/dir/subdir/
Fri Jul  1 11:21:13 AM CEST 2022
{
 "status": "success",
 "type": "file",
 "lastModified": "2022-07-01T10:59:32.228+02:00",
 "size": 1,
 "key": "file.txt",
 "etag": "68b329da9893e34099c7d8ad5cb9c940",
 "url": "https://io/scratch/dir/subdir/",
 "versionOrdinal": 1,
 "storageClass": "STANDARD" 
}

Your Environment

  • Version used (minio --version):
minio version RELEASE.2022-06-07T00-33-41Z
commit: e2d4d097e754dd3df2f0f6c6104bfc88fb943737
go version: go1.18.3
  • Server setup and configuration: minio-operator deployed tenant with DirectPV volumes
  • Operating System and version (uname -a): CentOS Stream 8 with Linux n04 4.18.0-383.el8.x86_64 minio/minio#1 SMP Wed Apr 20 15:38:08 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions