Browse Source

make sure leader join self as a peer

Xiang Li 12 years ago
parent
commit
0f22918e2b
1 changed files with 10 additions and 3 deletions
  1. 10 3
      etcd.go

+ 10 - 3
etcd.go

@@ -187,11 +187,18 @@ func main() {
 		// start as a leader in a new cluster
 		// start as a leader in a new cluster
 		if cluster == "" {
 		if cluster == "" {
 			server.StartLeader()
 			server.StartLeader()
+			
+			time.Sleep(time.Millisecond * 20)
 
 
 			// join self as a peer
 			// join self as a peer
-			command := &JoinCommand{}
-			command.Name = server.Name()
-			server.Do(command)
+			for {
+				command := &JoinCommand{}
+				command.Name = server.Name()
+				_, err := server.Do(command)
+				if err == nil {
+					break
+				}
+			}
 			debug("%s start as a leader", server.Name())
 			debug("%s start as a leader", server.Name())
 
 
 			// start as a fellower in a existing cluster
 			// start as a fellower in a existing cluster