diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-06-21 22:56:07 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-06-21 22:56:07 -0700 |
| commit | d474ce6fe304446b242f95e4013462045114b757 (patch) | |
| tree | e25b59f059723766d03f19d8b169034fe5ded8d1 | |
| parent | 117f8e0bc14ba7d5a29d397d02e2cd15f8eb1ab0 (diff) | |
| download | seaweedfs-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.go | 7 |
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 } |
