aboutsummaryrefslogtreecommitdiff
path: root/weed/shell/command_ec_decode.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-02-08 00:53:55 -0800
committerchrislu <chris.lu@gmail.com>2022-02-08 00:53:55 -0800
commitf18803424aa64877971330e60d2a4207d5bf1bd2 (patch)
tree426d9b4aa5c56702e92d6b840d1a595c88c7a64e /weed/shell/command_ec_decode.go
parent98604059741190178efd26ad788d52f067b3097c (diff)
downloadseaweedfs-f18803424aa64877971330e60d2a4207d5bf1bd2.tar.xz
seaweedfs-f18803424aa64877971330e60d2a4207d5bf1bd2.zip
volume.balance: add delay during tight loop
fix https://github.com/chrislusf/seaweedfs/issues/2637
Diffstat (limited to 'weed/shell/command_ec_decode.go')
-rw-r--r--weed/shell/command_ec_decode.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/weed/shell/command_ec_decode.go b/weed/shell/command_ec_decode.go
index 288fa4945..de22990fa 100644
--- a/weed/shell/command_ec_decode.go
+++ b/weed/shell/command_ec_decode.go
@@ -8,6 +8,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/pb"
"github.com/chrislusf/seaweedfs/weed/storage/types"
"io"
+ "time"
"google.golang.org/grpc"
@@ -53,7 +54,7 @@ func (c *commandEcDecode) Do(args []string, commandEnv *CommandEnv, writer io.Wr
vid := needle.VolumeId(*volumeId)
// collect topology information
- topologyInfo, _, err := collectTopologyInfo(commandEnv)
+ topologyInfo, _, err := collectTopologyInfo(commandEnv, 0)
if err != nil {
return err
}
@@ -233,7 +234,11 @@ func lookupVolumeIds(commandEnv *CommandEnv, volumeIds []string) (volumeIdLocati
return resp.VolumeIdLocations, nil
}
-func collectTopologyInfo(commandEnv *CommandEnv) (topoInfo *master_pb.TopologyInfo, volumeSizeLimitMb uint64, err error) {
+func collectTopologyInfo(commandEnv *CommandEnv, delayBeforeCollecting time.Duration) (topoInfo *master_pb.TopologyInfo, volumeSizeLimitMb uint64, err error) {
+
+ if delayBeforeCollecting > 0 {
+ time.Sleep(delayBeforeCollecting)
+ }
var resp *master_pb.VolumeListResponse
err = commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error {