mirror of
https://github.com/minio/minio.git
synced 2025-11-09 21:49:46 -05:00
xl/bootup: Upon bootup handle errors loading bucket and event configs. (#3287)
In a situation when we have lots of buckets the bootup time might have slowed down a bit but during this situation the servers quickly going up and down would be an in-transit state. Certain calls which do not use quorum like `readXLMetaStat` might return an error saying `errDiskNotFound` this is returned in place of expected `errFileNotFound` which leads to an issue where server doesn't start. To avoid this situation we need to ignore them as safe values to be ignored, for the most part these are network related errors. Fixes #3275
This commit is contained in:
@@ -77,8 +77,8 @@ func (xl xlObjects) HealBucket(bucket string) error {
|
||||
return healBucketMetadata(xl.storageDisks, bucket)
|
||||
}
|
||||
|
||||
// Heal bucket - create buckets on disks where it does not exist.
|
||||
func healBucket(storageDisks []StorageAPI, bucket string, writeQuorum int) error {
|
||||
// Heal bucket - create buckets on disks where it does not exist.
|
||||
bucketLock := nsMutex.NewNSLock(bucket, "")
|
||||
bucketLock.Lock()
|
||||
defer bucketLock.Unlock()
|
||||
@@ -139,7 +139,7 @@ func healBucketMetadata(storageDisks []StorageAPI, bucket string) error {
|
||||
metaLock := nsMutex.NewNSLock(minioMetaBucket, metaPath)
|
||||
metaLock.RLock()
|
||||
defer metaLock.RUnlock()
|
||||
// Heals the metaPath.
|
||||
// Heals the given file at metaPath.
|
||||
if err := healObject(storageDisks, minioMetaBucket, metaPath); err != nil && !isErrObjectNotFound(err) {
|
||||
return err
|
||||
} // Success.
|
||||
@@ -299,10 +299,13 @@ func healObject(storageDisks []StorageAPI, bucket string, object string) error {
|
||||
return err
|
||||
}
|
||||
for index, sum := range checkSums {
|
||||
if outDatedDisks[index] == nil {
|
||||
continue
|
||||
if outDatedDisks[index] != nil {
|
||||
checkSumInfos[index] = append(checkSumInfos[index], checkSumInfo{
|
||||
Name: partName,
|
||||
Algorithm: sumInfo.Algorithm,
|
||||
Hash: sum,
|
||||
})
|
||||
}
|
||||
checkSumInfos[index] = append(checkSumInfos[index], checkSumInfo{partName, sumInfo.Algorithm, sum})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user