mirror of
https://github.com/minio/minio.git
synced 2024-12-24 06:05:55 -05:00
fix: ensure buckets are preserved if one set returns error (#9468)
the bucket should be deleted if it can be successfully deleted on all sets, if not we should ensure to restore those buckets properly.
This commit is contained in:
parent
073aac3d92
commit
97d952e61c
@ -514,12 +514,11 @@ func (s *xlSets) MakeBucketWithLocation(ctx context.Context, bucket, location st
|
||||
}
|
||||
|
||||
errs := g.Wait()
|
||||
// Upon even a single write quorum error we undo all previously created buckets.
|
||||
// Upon any error we try to undo the make bucket operation if possible
|
||||
// on all sets where it succeeded.
|
||||
for _, err := range errs {
|
||||
if err != nil {
|
||||
if _, ok := err.(InsufficientWriteQuorum); ok {
|
||||
undoMakeBucketSets(bucket, s.sets, errs)
|
||||
}
|
||||
undoMakeBucketSets(bucket, s.sets, errs)
|
||||
return err
|
||||
}
|
||||
}
|
||||
@ -686,13 +685,11 @@ func (s *xlSets) DeleteBucket(ctx context.Context, bucket string, forceDelete bo
|
||||
}
|
||||
|
||||
errs := g.Wait()
|
||||
// For any write quorum failure, we undo all the delete buckets operation
|
||||
// by creating all the buckets again.
|
||||
// For any failure, we attempt undo all the delete buckets operation
|
||||
// by creating buckets again on all sets which were successfully deleted.
|
||||
for _, err := range errs {
|
||||
if err != nil {
|
||||
if _, ok := err.(InsufficientWriteQuorum); ok {
|
||||
undoDeleteBucketSets(bucket, s.sets, errs)
|
||||
}
|
||||
undoDeleteBucketSets(bucket, s.sets, errs)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -87,11 +87,9 @@ func newXLZones(ctx context.Context, endpointZones EndpointZones) (ObjectLayer,
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if !z.SingleZone() {
|
||||
z.quickHealBuckets(ctx)
|
||||
}
|
||||
go intDataUpdateTracker.start(GlobalContext, localDrives...)
|
||||
|
||||
z.quickHealBuckets(ctx)
|
||||
go intDataUpdateTracker.start(GlobalContext, localDrives...)
|
||||
return z, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user