XL: pickValidXLMeta should return error instead of panic'ing (#3277)

This commit is contained in:
Krishnan Parthasarathi
2016-11-21 10:26:44 +05:30
committed by Harshavardhana
parent 0b9f0d14a1
commit eed9ab0464
5 changed files with 85 additions and 11 deletions

View File

@@ -236,8 +236,11 @@ func healObject(storageDisks []StorageAPI, bucket string, object string) error {
latestDisks, modTime := listOnlineDisks(storageDisks, partsMetadata, errs)
// List of disks having outdated version of the object or missing object.
outDatedDisks := outDatedDisks(storageDisks, partsMetadata, errs)
// Latest xlMetaV1 for reference.
latestMeta := pickValidXLMeta(partsMetadata, modTime)
// Latest xlMetaV1 for reference. If a valid metadata is not present, it is as good as object not found.
latestMeta, pErr := pickValidXLMeta(partsMetadata, modTime)
if pErr != nil {
return pErr
}
for index, disk := range outDatedDisks {
// Before healing outdated disks, we need to remove xl.json