Merge pull request #1419 from robin1900/master

fix bug:  two same volumeId in different collections
This commit is contained in:
Chris Lu 2020-08-10 20:38:55 -07:00 committed by GitHub
commit f1b40567e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"math/rand" "math/rand"
"sync" "sync"
"time"
"github.com/chrislusf/raft" "github.com/chrislusf/raft"
@ -65,26 +66,26 @@ func (t *Topology) IsLeader() bool {
if t.RaftServer.State() == raft.Leader { if t.RaftServer.State() == raft.Leader {
return true return true
} }
if t.RaftServer.Leader() == "" {
return true
}
} }
return false return false
} }
func (t *Topology) Leader() (string, error) { func (t *Topology) Leader() (string, error) {
l := "" l := ""
count := 3
for count > 0 {
if t.RaftServer != nil { if t.RaftServer != nil {
l = t.RaftServer.Leader() l = t.RaftServer.Leader()
} else { } else {
return "", errors.New("Raft Server not ready yet!") return "", errors.New("Raft Server not ready yet!")
} }
if l != "" {
if l == "" { break
// We are a single node cluster, we are the leader } else {
return t.RaftServer.Name(), nil time.Sleep(time.Duration(5-count) * time.Second)
}
count -= 1
} }
return l, nil return l, nil
} }