java-topology/defects/seaweedfs-0002/patch/seaweedfs-0002.patch

53 lines
1.5 KiB
Diff

# UNDF: UNDF-2026-000001033
--- a/weed/shell/command_fs_verify.go
+++ b/weed/shell/command_fs_verify.go
@@ -1,16 +1,15 @@
package shell
import (
"bytes"
"context"
"flag"
"fmt"
"io"
"math"
"strings"
"sync"
"time"
- "slices"
-
"github.com/seaweedfs/seaweedfs/weed/filer"
"github.com/seaweedfs/seaweedfs/weed/operation"
"github.com/seaweedfs/seaweedfs/weed/pb"
@@ -113,22 +112,24 @@ func (c *commandFsVerify) collectVolumeIds() error {
func (c *commandFsVerify) collectVolumeIds() error {
topologyInfo, _, err := collectTopologyInfo(c.env, 0)
if err != nil {
return err
}
+ seen := make(map[pb.ServerAddress]bool)
eachDataNode(topologyInfo, func(dc DataCenterId, rack RackId, nodeInfo *master_pb.DataNodeInfo) {
for _, diskInfo := range nodeInfo.DiskInfos {
for _, vi := range diskInfo.VolumeInfos {
volumeServer := pb.NewServerAddressFromDataNode(nodeInfo)
c.volumeIds[vi.Id] = append(c.volumeIds[vi.Id], volumeServer)
- if !slices.Contains(c.volumeServers, volumeServer) {
+ if !seen[volumeServer] {
+ seen[volumeServer] = true
c.volumeServers = append(c.volumeServers, volumeServer)
}
}
for _, vi := range diskInfo.EcShardInfos {
volumeServer := pb.NewServerAddressFromDataNode(nodeInfo)
c.volumeIds[vi.Id] = append(c.volumeIds[vi.Id], volumeServer)
- if !slices.Contains(c.volumeServers, volumeServer) {
+ if !seen[volumeServer] {
+ seen[volumeServer] = true
c.volumeServers = append(c.volumeServers, volumeServer)
}
}
}
})
return nil
}