Explorar o código

integration: fix TestV3WatchFutureRevision

Fix https://github.com/coreos/etcd/issues/4730.

Previously we put keys async and there might be a race when
the watch triggers before the put receives the response. When that
happens, put might fails to get the response since we shutdown the server
when watch triggers.
Xiang Li %!s(int64=10) %!d(string=hai) anos
pai
achega
39d307572e
Modificáronse 1 ficheiros con 10 adicións e 13 borrados
  1. 10 13
      integration/v3_watch_test.go

+ 10 - 13
integration/v3_watch_test.go

@@ -319,20 +319,17 @@ func TestV3WatchFutureRevision(t *testing.T) {
 		t.Fatal("create = %v, want %v", cresp.Created, true)
 	}
 
-	// asynchronously create keys
-	go func() {
-		kvc := toGRPC(clus.RandClient()).KV
-		for {
-			req := &pb.PutRequest{Key: wkey, Value: []byte("bar")}
-			resp, rerr := kvc.Put(context.TODO(), req)
-			if rerr != nil {
-				t.Fatalf("couldn't put key (%v)", rerr)
-			}
-			if resp.Header.Revision == wrev {
-				return
-			}
+	kvc := toGRPC(clus.RandClient()).KV
+	for {
+		req := &pb.PutRequest{Key: wkey, Value: []byte("bar")}
+		resp, rerr := kvc.Put(context.TODO(), req)
+		if rerr != nil {
+			t.Fatalf("couldn't put key (%v)", rerr)
 		}
-	}()
+		if resp.Header.Revision == wrev {
+			break
+		}
+	}
 
 	// ensure watcher request created a new watcher
 	cresp, err = wStream.Recv()