Heal format by inspection should avoid picking minioMetaBucket dir if the latter comes first in the list (listDir not ordered) (#2426)

This commit is contained in:
Anis Elleuch 2016-08-12 16:38:04 +01:00 committed by Harshavardhana
parent fdab984c8d
commit 64dc2a2e7f

View File

@ -561,14 +561,25 @@ func reorderDisksByInspection(orderedDisks, storageDisks []StorageAPI, formatCon
if len(vols) == 0 {
continue
}
objects, err := storageDisks[index].ListDir(vols[0].Name, "")
volName := ""
// Avoid picking minioMetaBucket because ListVols() returns a non ordered list
for i := range vols {
if vols[i].Name != minioMetaBucket {
volName = vols[i].Name
break
}
}
if volName == "" {
continue
}
objects, err := storageDisks[index].ListDir(volName, "")
if err != nil {
return nil, err
}
if len(objects) == 0 {
continue
}
xlData, err := readXLMeta(storageDisks[index], vols[0].Name, objects[0])
xlData, err := readXLMeta(storageDisks[index], volName, objects[0])
if err != nil {
if err == errFileNotFound {
continue