Browse Source

Merge pull request #10904 from yuzeming/fixed-10899

integration: fix a data race about `i` and `tt` in TestV3WatchFromCur…
Jingyi Hu 6 years ago
parent
commit
fe86a786a4
1 changed files with 5 additions and 0 deletions
  1. 5 0
      integration/v3_watch_test.go

+ 5 - 0
integration/v3_watch_test.go

@@ -245,6 +245,7 @@ func TestV3WatchFromCurrentRevision(t *testing.T) {
 		}
 
 		// asynchronously create keys
+		ch := make(chan struct{}, 1)
 		go func() {
 			for _, k := range tt.putKeys {
 				kvc := toGRPC(clus.RandClient()).KV
@@ -253,6 +254,7 @@ func TestV3WatchFromCurrentRevision(t *testing.T) {
 					t.Errorf("#%d: couldn't put key (%v)", i, err)
 				}
 			}
+			ch <- struct{}{}
 		}()
 
 		// check stream results
@@ -286,6 +288,9 @@ func TestV3WatchFromCurrentRevision(t *testing.T) {
 			t.Errorf("unexpected pb.WatchResponse is received %+v", nr)
 		}
 
+		// wait for the client to finish sending the keys before terminating the cluster
+		<-ch
+
 		// can't defer because tcp ports will be in use
 		clus.Terminate(t)
 	}