From 0cd0f6c255a28e28e2a9370d4106b462f3e6f5a5 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 30 Aug 2019 10:41:02 -0700 Subject: [PATCH] Avoid error modification during IAM migration (#8156) The underlying errors are important, for IAM requirements and should wait appropriately at the caller level, this allows for distributed setups to run properly and not fail prematurely during startup. Also additionally fix the onlineDisk counting --- cmd/iam-etcd-store.go | 2 +- cmd/iam-object-store.go | 6 +++--- cmd/xl-v1.go | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/iam-etcd-store.go b/cmd/iam-etcd-store.go index 6be1d824d..ab35dbbcd 100644 --- a/cmd/iam-etcd-store.go +++ b/cmd/iam-etcd-store.go @@ -213,7 +213,7 @@ func (ies *IAMEtcdStore) migrateToV1() error { case errConfigNotFound: // Need to migrate to V1. default: - return errors.New("corrupt IAM format file") + return err } } else { if iamFmt.Version >= iamFormatVersion1 { diff --git a/cmd/iam-object-store.go b/cmd/iam-object-store.go index 4ac39a1f6..73ff4efde 100644 --- a/cmd/iam-object-store.go +++ b/cmd/iam-object-store.go @@ -127,8 +127,8 @@ func (iamOS *IAMObjectStore) migrateUsersConfigToV1(isSTS bool) error { identityPath := pathJoin(basePrefix, user, iamIdentityFile) var cred auth.Credentials if err := iamOS.loadIAMConfig(&cred, identityPath); err != nil { - switch err.(type) { - case ObjectNotFound: + switch err { + case errConfigNotFound: // This should not happen. default: // File may be corrupt or network error @@ -169,7 +169,7 @@ func (iamOS *IAMObjectStore) migrateToV1() error { case errConfigNotFound: // Need to migrate to V1. default: - return errors.New("corrupt IAM format file") + return err } } else { if iamFmt.Version >= iamFormatVersion1 { diff --git a/cmd/xl-v1.go b/cmd/xl-v1.go index b700650fd..36becad40 100644 --- a/cmd/xl-v1.go +++ b/cmd/xl-v1.go @@ -101,6 +101,7 @@ func getDisksInfo(disks []StorageAPI) (disksInfo []DiskInfo, onlineDisks int, of for _, err := range errs { if err != nil { offlineDisks++ + continue } onlineDisks++ }