Deflake tests that rely on Stop() then Dial() not reconnecting (#1728)
This commit is contained in:
		| @ -318,7 +318,7 @@ func TestOneServerDown(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	defer test.cleanup() | 	defer test.cleanup() | ||||||
|  |  | ||||||
| 	cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerBuilder(rr)) | 	cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerBuilder(rr), grpc.WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("failed to dial: %v", err) | 		t.Fatalf("failed to dial: %v", err) | ||||||
| 	} | 	} | ||||||
| @ -372,6 +372,7 @@ func TestOneServerDown(t *testing.T) { | |||||||
| 	var targetSeen int | 	var targetSeen int | ||||||
| 	for i := 0; i < 1000; i++ { | 	for i := 0; i < 1000; i++ { | ||||||
| 		if _, err := testc.EmptyCall(context.Background(), &testpb.Empty{}, grpc.Peer(&p)); err != nil { | 		if _, err := testc.EmptyCall(context.Background(), &testpb.Empty{}, grpc.Peer(&p)); err != nil { | ||||||
|  | 			targetSeen = 0 | ||||||
| 			t.Logf("EmptyCall() = _, %v, want _, <nil>", err) | 			t.Logf("EmptyCall() = _, %v, want _, <nil>", err) | ||||||
| 			// Due to a race, this RPC could possibly get the connection that | 			// Due to a race, this RPC could possibly get the connection that | ||||||
| 			// was closing, and this RPC may fail. Keep trying when this | 			// was closing, and this RPC may fail. Keep trying when this | ||||||
| @ -415,7 +416,7 @@ func TestAllServersDown(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	defer test.cleanup() | 	defer test.cleanup() | ||||||
|  |  | ||||||
| 	cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerBuilder(rr)) | 	cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerBuilder(rr), grpc.WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("failed to dial: %v", err) | 		t.Fatalf("failed to dial: %v", err) | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -332,7 +332,7 @@ func TestOneServerDown(t *testing.T) { | |||||||
| 	numServers := 2 | 	numServers := 2 | ||||||
| 	servers, r, cleanup := startServers(t, numServers, math.MaxUint32) | 	servers, r, cleanup := startServers(t, numServers, math.MaxUint32) | ||||||
| 	defer cleanup() | 	defer cleanup() | ||||||
| 	cc, err := Dial("passthrough:///foo.bar.com", WithBalancer(RoundRobin(r)), WithBlock(), WithInsecure(), WithCodec(testCodec{})) | 	cc, err := Dial("passthrough:///foo.bar.com", WithBalancer(RoundRobin(r)), WithBlock(), WithInsecure(), WithCodec(testCodec{}), WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("Failed to create ClientConn: %v", err) | 		t.Fatalf("Failed to create ClientConn: %v", err) | ||||||
| 	} | 	} | ||||||
| @ -660,7 +660,7 @@ func TestPickFirstOrderOneServerDown(t *testing.T) { | |||||||
| 	numServers := 3 | 	numServers := 3 | ||||||
| 	servers, r, cleanup := startServers(t, numServers, math.MaxUint32) | 	servers, r, cleanup := startServers(t, numServers, math.MaxUint32) | ||||||
| 	defer cleanup() | 	defer cleanup() | ||||||
| 	cc, err := Dial("passthrough:///foo.bar.com", WithBalancer(pickFirstBalancerV1(r)), WithBlock(), WithInsecure(), WithCodec(testCodec{})) | 	cc, err := Dial("passthrough:///foo.bar.com", WithBalancer(pickFirstBalancerV1(r)), WithBlock(), WithInsecure(), WithCodec(testCodec{}), WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("Failed to create ClientConn: %v", err) | 		t.Fatalf("Failed to create ClientConn: %v", err) | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -182,7 +182,7 @@ func TestOneServerDownPickfirst(t *testing.T) { | |||||||
| 	servers, _, scleanup := startServers(t, numServers, math.MaxInt32) | 	servers, _, scleanup := startServers(t, numServers, math.MaxInt32) | ||||||
| 	defer scleanup() | 	defer scleanup() | ||||||
|  |  | ||||||
| 	cc, err := Dial(r.Scheme()+":///test.server", WithInsecure(), WithBalancerBuilder(newPickfirstBuilder()), WithCodec(testCodec{})) | 	cc, err := Dial(r.Scheme()+":///test.server", WithInsecure(), WithBalancerBuilder(newPickfirstBuilder()), WithCodec(testCodec{}), WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("failed to dial: %v", err) | 		t.Fatalf("failed to dial: %v", err) | ||||||
| 	} | 	} | ||||||
| @ -224,7 +224,7 @@ func TestAllServersDownPickfirst(t *testing.T) { | |||||||
| 	servers, _, scleanup := startServers(t, numServers, math.MaxInt32) | 	servers, _, scleanup := startServers(t, numServers, math.MaxInt32) | ||||||
| 	defer scleanup() | 	defer scleanup() | ||||||
|  |  | ||||||
| 	cc, err := Dial(r.Scheme()+":///test.server", WithInsecure(), WithBalancerBuilder(newPickfirstBuilder()), WithCodec(testCodec{})) | 	cc, err := Dial(r.Scheme()+":///test.server", WithInsecure(), WithBalancerBuilder(newPickfirstBuilder()), WithCodec(testCodec{}), WithWaitForHandshake()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatalf("failed to dial: %v", err) | 		t.Fatalf("failed to dial: %v", err) | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -468,6 +468,7 @@ type test struct { | |||||||
| 	clientInitialWindowSize     int32 | 	clientInitialWindowSize     int32 | ||||||
| 	clientInitialConnWindowSize int32 | 	clientInitialConnWindowSize int32 | ||||||
| 	perRPCCreds                 credentials.PerRPCCredentials | 	perRPCCreds                 credentials.PerRPCCredentials | ||||||
|  | 	customDialOptions           []grpc.DialOption | ||||||
| 	resolverScheme              string | 	resolverScheme              string | ||||||
|  |  | ||||||
| 	// All test dialing is blocking by default. Set this to true if dial | 	// All test dialing is blocking by default. Set this to true if dial | ||||||
| @ -718,6 +719,7 @@ func (te *test) clientConn() *grpc.ClientConn { | |||||||
| 	if te.srvAddr == "" { | 	if te.srvAddr == "" { | ||||||
| 		te.srvAddr = "client.side.only.test" | 		te.srvAddr = "client.side.only.test" | ||||||
| 	} | 	} | ||||||
|  | 	opts = append(opts, te.customDialOptions...) | ||||||
| 	var err error | 	var err error | ||||||
| 	te.cc, err = grpc.Dial(scheme+te.srvAddr, opts...) | 	te.cc, err = grpc.Dial(scheme+te.srvAddr, opts...) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -803,6 +805,7 @@ func TestTimeoutOnDeadServer(t *testing.T) { | |||||||
|  |  | ||||||
| func testTimeoutOnDeadServer(t *testing.T, e env) { | func testTimeoutOnDeadServer(t *testing.T, e env) { | ||||||
| 	te := newTest(t, e) | 	te := newTest(t, e) | ||||||
|  | 	te.customDialOptions = []grpc.DialOption{grpc.WithWaitForHandshake()} | ||||||
| 	te.userAgent = testAppUA | 	te.userAgent = testAppUA | ||||||
| 	te.declareLogNoise( | 	te.declareLogNoise( | ||||||
| 		"transport: http2Client.notifyError got notified that the client transport was broken EOF", | 		"transport: http2Client.notifyError got notified that the client transport was broken EOF", | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 dfawley
					dfawley