From cd75202da8473a68bb3871f385f280e2d35af850 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sun, 10 Aug 2025 17:48:18 -0700 Subject: [PATCH] Replaced goto with Idiomatic Map Approach --- weed/admin/dash/ec_shard_management.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/weed/admin/dash/ec_shard_management.go b/weed/admin/dash/ec_shard_management.go index 02f78b9d5..02138e9e7 100644 --- a/weed/admin/dash/ec_shard_management.go +++ b/weed/admin/dash/ec_shard_management.go @@ -871,6 +871,7 @@ func (s *AdminServer) getEcVolumeHealthMetrics(volumeID uint32) (*EcVolumeHealth } if resp.TopologyInfo != nil { + serverSet := make(map[string]struct{}) for _, dc := range resp.TopologyInfo.DataCenterInfos { for _, rack := range dc.RackInfos { for _, node := range rack.DataNodeInfos { @@ -878,15 +879,16 @@ func (s *AdminServer) getEcVolumeHealthMetrics(volumeID uint32) (*EcVolumeHealth // Check if this node has EC shards for our volume for _, ecShardInfo := range diskInfo.EcShardInfos { if ecShardInfo.Id == volumeID { - servers = append(servers, node.Id) - goto nextNode // Found shards on this node, move to next node + serverSet[node.Id] = struct{}{} } } } } - nextNode: } } + for server := range serverSet { + servers = append(servers, server) + } } return nil })