minio/internal
Harshavardhana 200caab82b
fix: multi-pool setup make sure acquire locks properly (#13280)
This was a regression introduced in '14bb969782'
this has the potential to cause corruption when
there are concurrent overwrites attempting to update
the content on the namespace.

This PR adds a situation where PutObject(), CopyObject()
compete properly for the same locks with NewMultipartUpload()
however it ends up turning off competing locks for the actual
object with GetObject() and DeleteObject() - since they do not
compete due to concurrent I/O on a versioned bucket it can lead
to loss of versions.

This PR fixes this bug with multi-pool setup with replication
that causes corruption of inlined data due to lack of competing
locks in a multi-pool setup.

Instead CompleteMultipartUpload holds the necessary
locks when finishing the transaction, knowing the exact
location of an object to schedule the multipart upload
doesn't need to compete in this manner, a pool id location
for existing object.
2021-09-22 21:46:24 -07:00
..
auth disallow sub-credentials based on root credentials to gain priviledges (#12947) 2021-08-12 18:07:08 -07:00
bpool rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
bucket allow S3 gateway to support object locked buckets (#13257) 2021-09-21 09:02:15 -07:00
color rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
config do not panic if DNS_WEBHOOK_ENDPOINT is not reachable (#13265) 2021-09-22 09:16:12 -07:00
crypto fix sse-kms context unmarshal failure (#13206) 2021-09-14 12:52:46 -07:00
disk fix: enable go1.17 github ci/cd (#12997) 2021-08-18 18:35:22 -07:00
dsync fix: multi-pool setup make sure acquire locks properly (#13280) 2021-09-22 21:46:24 -07:00
etag rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
event Remove support for elasticsearch versions < 7.x (#13260) 2021-09-21 12:57:10 -07:00
fips tls: add TLS 1.3 ciphers to the list of supported ciphers (#13158) 2021-09-07 09:57:32 -07:00
handlers rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
hash fix: enable go1.17 github ci/cd (#12997) 2021-08-18 18:35:22 -07:00
http Add support for multi site replication (#12880) 2021-09-18 13:31:35 -07:00
ioutil Tweak readall allocation and renameData buffer reuse (#13108) 2021-08-30 08:38:11 -07:00
jwt [deps]: update jwt-go dependency (#12544) 2021-06-24 08:41:04 -07:00
kms rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
lock fix: enable go1.17 github ci/cd (#12997) 2021-08-18 18:35:22 -07:00
logger http hook should accept more than 200 statusCode (#13180) 2021-09-10 14:27:37 -07:00
lsync rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
mountinfo fix: enable go1.17 github ci/cd (#12997) 2021-08-18 18:35:22 -07:00
pubsub rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
rest move internal/net to pkg/net package (#12505) 2021-06-14 14:54:37 -07:00
s3select select: Return null for non-exiting column indexes (#13196) 2021-09-13 09:13:25 -07:00
smart fix: enable go1.17 github ci/cd (#12997) 2021-08-18 18:35:22 -07:00
sync/errgroup rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00