add locks for newmultipartupload to serialize concurrent calls

This commit is contained in:
Harshavardhana 2021-05-06 09:38:22 -07:00
parent 5c0d3ef283
commit 424cd764f6

View file

@ -1482,6 +1482,12 @@ func (z *erasureServerSets) NewMultipartUpload(ctx context.Context, bucket, obje
return z.serverSets[0].NewMultipartUpload(ctx, bucket, object, opts)
}
ns := z.NewNSLock(minioMetaMultipartBucket, pathJoin(bucket, object, "newMultipartObject.lck"))
if err := ns.GetLock(ctx, globalOperationTimeout); err != nil {
return "", err
}
defer ns.Unlock()
for idx, zone := range z.serverSets {
result, err := zone.ListMultipartUploads(ctx, bucket, object, "", "", "", maxUploadsList)
if err != nil {