prevent dead loop for followers of master node (#6007)

* prevent dead loop for followers of master node

* fix comments

---------

Co-authored-by: levi <344887649@foxmail.com>
This commit is contained in:
dsd 2024-09-12 01:24:52 +08:00 committed by GitHub
parent 3b840c20e3
commit 151f2ff7a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,12 +3,13 @@ package weed_server
import (
"context"
"fmt"
"github.com/seaweedfs/seaweedfs/weed/stats"
"math/rand/v2"
"strings"
"sync"
"time"
"github.com/seaweedfs/seaweedfs/weed/stats"
"github.com/seaweedfs/seaweedfs/weed/topology"
"github.com/seaweedfs/raft"
@ -42,7 +43,13 @@ func (ms *MasterServer) DoAutomaticVolumeGrow(req *topology.VolumeGrowRequest) {
func (ms *MasterServer) ProcessGrowRequest() {
go func() {
ctx := context.Background()
firstRun := true
for {
if firstRun {
firstRun = false
} else {
time.Sleep(14*time.Minute + time.Duration(120*rand.Float32())*time.Second)
}
if !ms.Topo.IsLeader() {
continue
}
@ -84,7 +91,6 @@ func (ms *MasterServer) ProcessGrowRequest() {
glog.V(0).Infof("volume grow request failed: %+v", err)
}
}
time.Sleep(14*time.Minute + time.Duration(120*rand.Float32())*time.Second)
}
}()
go func() {