From d6ad6681ddb6ebae6fa2f82fae5f17827eae8e10 Mon Sep 17 00:00:00 2001 From: zhumingze Date: Mon, 6 Jan 2025 14:08:15 +0800 Subject: [PATCH] refactor(fsck): avoid panic when vol not exists #22911241 Signed-off-by: zhumingze --- tool/fsck/cmd/check.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tool/fsck/cmd/check.go b/tool/fsck/cmd/check.go index 4249e565e..0a6a5002b 100644 --- a/tool/fsck/cmd/check.go +++ b/tool/fsck/cmd/check.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "io" + "log" "net/http" "os" "reflect" @@ -213,6 +214,17 @@ func CheckMP() (err error) { } defer mpCheckLog.Close() + mc := master.NewMasterClient([]string{MasterAddr}, false) + upGradeCompatibleSettings, err := mc.AdminAPI().GetUpgradeCompatibleSettings() + if err != nil { + log.Fatalf("CheckMP: Get UpGradeCompatibleSettings failed err(%v)", err) + } + if !upGradeCompatibleSettings.DataMediaTypeVaild { + log.Fatalf("CheckMp: %v DataMediaType is not valid", upGradeCompatibleSettings) + } + storageClass := upGradeCompatibleSettings.LegacyDataMediaType + metanode.SetLegacyType(storageClass) + if MpId != 0 { var mp *proto.MetaPartitionInfo mp, err = getMetaPartitionById(MasterAddr, MpId) @@ -230,18 +242,6 @@ func CheckMP() (err error) { return } - mc := master.NewMasterClient([]string{MasterAddr}, false) - volInfo, err := mc.AdminAPI().GetVolumeSimpleInfo(VolName) - if err != nil { - panic(fmt.Sprintf("get vol name failed, name %s, err %s", VolName, err.Error())) - } - - storageClass := proto.MediaType_HDD - if proto.IsValidMediaType(volInfo.VolStorageClass) { - storageClass = volInfo.VolStorageClass - } - metanode.SetLegacyType(storageClass) - mps, err := getMetaPartitions(MasterAddr, VolName) if err != nil { return