From a0c6db361c7f37f88c58c61b253e2f8cb28d582b Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 16 Feb 2021 05:33:38 -0800 Subject: [PATCH] avoid nil --- weed/shell/command_ec_common.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/weed/shell/command_ec_common.go b/weed/shell/command_ec_common.go index c3ffa67d6..87a138ab6 100644 --- a/weed/shell/command_ec_common.go +++ b/weed/shell/command_ec_common.go @@ -302,7 +302,8 @@ func findEcVolumeShards(ecNode *EcNode, vid needle.VolumeId) erasure_coding.Shar func (ecNode *EcNode) addEcVolumeShards(vid needle.VolumeId, collection string, shardIds []uint32) *EcNode { foundVolume := false - if diskInfo, found := ecNode.info.DiskInfos[string(types.HardDriveType)]; found { + diskInfo, found := ecNode.info.DiskInfos[string(types.HardDriveType)] + if found { for _, shardInfo := range diskInfo.EcShardInfos { if needle.VolumeId(shardInfo.Id) == vid { oldShardBits := erasure_coding.ShardBits(shardInfo.EcIndexBits) @@ -316,6 +317,11 @@ func (ecNode *EcNode) addEcVolumeShards(vid needle.VolumeId, collection string, break } } + } else { + diskInfo = &master_pb.DiskInfo{ + Type: string(types.HardDriveType), + } + ecNode.info.DiskInfos[string(types.HardDriveType)] = diskInfo } if !foundVolume {