diff --git a/weed/server/raft_server.go b/weed/server/raft_server.go index c332da38e..ca1792ac6 100644 --- a/weed/server/raft_server.go +++ b/weed/server/raft_server.go @@ -3,6 +3,7 @@ package weed_server import ( "encoding/json" "io/ioutil" + "math/rand" "os" "path" "reflect" @@ -70,8 +71,8 @@ func NewRaftServer(r *mux.Router, peers []string, httpAddr string, dataDir strin for _, peer := range s.peers { s.raftServer.AddPeer(peer, "http://"+peer) } - - if s.raftServer.IsLogEmpty() && isTheFirstOne(httpAddr, s.peers) { + time.Sleep(time.Duration(1000+rand.Int31n(3000)) * time.Millisecond) + if s.raftServer.IsLogEmpty() { // Initialize the server by joining itself. glog.V(0).Infoln("Initializing new cluster") @@ -128,11 +129,3 @@ func isPeersChanged(dir string, self string, peers []string) (oldPeers []string, return oldPeers, !reflect.DeepEqual(peers, oldPeers) } - -func isTheFirstOne(self string, peers []string) bool { - sort.Strings(peers) - if len(peers)<=0{ - return true - } - return self == peers[0] -}