aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-06-21 22:56:07 -0700
committerChris Lu <chris.lu@gmail.com>2021-06-21 22:56:07 -0700
commitd474ce6fe304446b242f95e4013462045114b757 (patch)
treee25b59f059723766d03f19d8b169034fe5ded8d1
parent117f8e0bc14ba7d5a29d397d02e2cd15f8eb1ab0 (diff)
downloadseaweedfs-d474ce6fe304446b242f95e4013462045114b757.tar.xz
seaweedfs-d474ce6fe304446b242f95e4013462045114b757.zip
master: avoid repeated leader redirection
fix https://github.com/chrislusf/seaweedfs/issues/2146
-rw-r--r--weed/topology/topology.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/weed/topology/topology.go b/weed/topology/topology.go
index d704a5636..4cbe22a42 100644
--- a/weed/topology/topology.go
+++ b/weed/topology/topology.go
@@ -37,7 +37,7 @@ type Topology struct {
chanFullVolumes chan storage.VolumeInfo
chanCrowdedVolumes chan storage.VolumeInfo
- Configuration *Configuration
+ Configuration *Configuration
RaftServer raft.Server
}
@@ -70,6 +70,11 @@ func (t *Topology) IsLeader() bool {
if t.RaftServer.State() == raft.Leader {
return true
}
+ if leader, err := t.Leader(); err == nil {
+ if t.RaftServer.Name() == leader {
+ return true
+ }
+ }
}
return false
}