From b210ea79bcdd349f341d481f49f79745d928f4e3 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 2 Jun 2023 14:38:09 -0700 Subject: [PATCH] do not save MTime in newMultipartUpload() to avoid side-affects (#17340) --- cmd/bucket-replication.go | 2 ++ cmd/erasure-server-pool-decom.go | 3 +-- cmd/erasure-server-pool-rebalance.go | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/bucket-replication.go b/cmd/bucket-replication.go index 7d87f80e0..a19a883f0 100644 --- a/cmd/bucket-replication.go +++ b/cmd/bucket-replication.go @@ -1462,6 +1462,8 @@ func (ri ReplicateObjectInfo) replicateAll(ctx context.Context, objectAPI Object func replicateObjectWithMultipart(ctx context.Context, c *minio.Core, bucket, object string, r io.Reader, objInfo ObjectInfo, opts minio.PutObjectOptions) (err error) { var uploadedParts []minio.CompletePart + // new multipart must not set mtime as it may lead to erroneous cleanups at various intervals. + opts.Internal.SourceMTime = time.Time{} // this value is saved properly in CompleteMultipartUpload() uploadID, err := c.NewMultipartUpload(context.Background(), bucket, object, opts) if err != nil { return err diff --git a/cmd/erasure-server-pool-decom.go b/cmd/erasure-server-pool-decom.go index 1cfbc7542..4334a2b93 100644 --- a/cmd/erasure-server-pool-decom.go +++ b/cmd/erasure-server-pool-decom.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2021 MinIO, Inc. +// Copyright (c) 2015-2023 MinIO, Inc. // // This file is part of MinIO Object Storage stack // @@ -545,7 +545,6 @@ func (z *erasureServerPools) decommissionObject(ctx context.Context, bucket stri if objInfo.isMultipart() { res, err := z.NewMultipartUpload(ctx, bucket, objInfo.Name, ObjectOptions{ VersionID: objInfo.VersionID, - MTime: objInfo.ModTime, UserDefined: objInfo.UserDefined, }) if err != nil { diff --git a/cmd/erasure-server-pool-rebalance.go b/cmd/erasure-server-pool-rebalance.go index 0e47116b3..30cd15ade 100644 --- a/cmd/erasure-server-pool-rebalance.go +++ b/cmd/erasure-server-pool-rebalance.go @@ -716,7 +716,6 @@ func (z *erasureServerPools) rebalanceObject(ctx context.Context, bucket string, if oi.isMultipart() { res, err := z.NewMultipartUpload(ctx, bucket, oi.Name, ObjectOptions{ VersionID: oi.VersionID, - MTime: oi.ModTime, UserDefined: oi.UserDefined, }) if err != nil {