fix: crash in metrics handler when some disks are offline (#9450)

Fixes #9449
master
Harshavardhana 5 years ago committed by GitHub
parent 4843affd0e
commit 6ecc98fddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      cmd/xl-v1.go

@ -175,20 +175,21 @@ func getStorageInfo(disks []StorageAPI, endpoints Endpoints) StorageInfo {
// StorageInfo - returns underlying storage statistics. // StorageInfo - returns underlying storage statistics.
func (xl xlObjects) StorageInfo(ctx context.Context, local bool) StorageInfo { func (xl xlObjects) StorageInfo(ctx context.Context, local bool) StorageInfo {
var endpoints = xl.endpoints
var disks []StorageAPI
if !local { disks := xl.getDisks()
disks = xl.getDisks() if local {
} else { var localDisks []StorageAPI
for i, d := range xl.getDisks() { for i, disk := range disks {
if endpoints[i].IsLocal && d.Hostname() == "" { if disk != nil {
if xl.endpoints[i].IsLocal && disk.Hostname() == "" {
// Append this local disk since local flag is true // Append this local disk since local flag is true
disks = append(disks, d) localDisks = append(localDisks, disk)
}
} }
} }
disks = localDisks
} }
return getStorageInfo(disks, endpoints) return getStorageInfo(disks, xl.endpoints)
} }
// GetMetrics - is not implemented and shouldn't be called. // GetMetrics - is not implemented and shouldn't be called.

Loading…
Cancel
Save