From 449397b8df9d585b7823ee672c28447b47c279e1 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Tue, 14 Jul 2026 12:25:36 +0100 Subject: [PATCH] quatrix: fix incorrect modtime after uploading a file Update (which Put also uses) kept the caller's full precision modtime in memory while the upload finalize request sends it rounded to microseconds, so until the object was re-read the modtime did not match what a fresh listing would report. This broke wrappers which compare exact modtimes, such as the hasher backend's fingerprint and the VFS cache. Round the modtime to microseconds to match what the server stores. --- backend/quatrix/quatrix.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/quatrix/quatrix.go b/backend/quatrix/quatrix.go index 19d6f0119..f11cf470b 100644 --- a/backend/quatrix/quatrix.go +++ b/backend/quatrix/quatrix.go @@ -1151,7 +1151,10 @@ func (o *Object) dynamicUpload(ctx context.Context, size int64, modTime time.Tim } o.size = size - o.modTime = modTime + // finalize sends the modtime rounded to microseconds so round + // here too to keep the in-memory modtime identical to the one a + // fresh listing returns. + o.modTime = modTime.Round(time.Microsecond) return nil }