mirror of
https://github.com/minio/minio.git
synced 2025-04-20 02:27:50 -04:00
fix: do not error out if the local bucket is missing (#17025)
This commit is contained in:
parent
a5835cecbf
commit
bdad3730f7
@ -137,16 +137,7 @@ func (sys *S3PeerSys) ListBuckets(ctx context.Context, opts BucketOptions) (resu
|
|||||||
func (sys *S3PeerSys) GetBucketInfo(ctx context.Context, bucket string, opts BucketOptions) (binfo BucketInfo, err error) {
|
func (sys *S3PeerSys) GetBucketInfo(ctx context.Context, bucket string, opts BucketOptions) (binfo BucketInfo, err error) {
|
||||||
g := errgroup.WithNErrs(len(sys.peerClients))
|
g := errgroup.WithNErrs(len(sys.peerClients))
|
||||||
|
|
||||||
bucketInfos := make([]BucketInfo, len(sys.peerClients)+1)
|
bucketInfos := make([]BucketInfo, len(sys.peerClients))
|
||||||
|
|
||||||
bucketInfo, err := getBucketInfoLocal(ctx, bucket, opts)
|
|
||||||
if err != nil {
|
|
||||||
return BucketInfo{}, err
|
|
||||||
}
|
|
||||||
|
|
||||||
errs := []error{nil}
|
|
||||||
bucketInfos[0] = bucketInfo
|
|
||||||
|
|
||||||
for idx, client := range sys.peerClients {
|
for idx, client := range sys.peerClients {
|
||||||
idx := idx
|
idx := idx
|
||||||
client := client
|
client := client
|
||||||
@ -158,19 +149,29 @@ func (sys *S3PeerSys) GetBucketInfo(ctx context.Context, bucket string, opts Buc
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
bucketInfos[idx+1] = bucketInfo
|
bucketInfos[idx] = bucketInfo
|
||||||
return nil
|
return nil
|
||||||
}, idx)
|
}, idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
errs = append(errs, g.Wait()...)
|
errs := g.Wait()
|
||||||
|
|
||||||
|
bucketInfo, err := getBucketInfoLocal(ctx, bucket, opts)
|
||||||
|
errs = append(errs, err)
|
||||||
|
bucketInfos = append(bucketInfos, bucketInfo)
|
||||||
|
|
||||||
quorum := (len(sys.allPeerClients) / 2)
|
quorum := (len(sys.allPeerClients) / 2)
|
||||||
if err = reduceReadQuorumErrs(ctx, errs, bucketOpIgnoredErrs, quorum); err != nil {
|
if err = reduceReadQuorumErrs(ctx, errs, bucketOpIgnoredErrs, quorum); err != nil {
|
||||||
return BucketInfo{}, toObjectErr(err, bucket)
|
return BucketInfo{}, toObjectErr(err, bucket)
|
||||||
}
|
}
|
||||||
|
|
||||||
return bucketInfo, nil
|
for i, err := range errs {
|
||||||
|
if err == nil {
|
||||||
|
return bucketInfos[i], nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return BucketInfo{}, toObjectErr(errVolumeNotFound, bucket)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *peerS3Client) ListBuckets(ctx context.Context, opts BucketOptions) ([]BucketInfo, error) {
|
func (client *peerS3Client) ListBuckets(ctx context.Context, opts BucketOptions) ([]BucketInfo, error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user