Skip to content

Commit 503a123

Browse files
committed
Retry one failure when switching servers
1 parent 028bf08 commit 503a123

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

xds/internal/balancer/clusterimpl/tests/balancer_test.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,9 @@ func (s) TestLoadReportingPickFirstMultiLocality(t *testing.T) {
271271
}
272272

273273
// Create a ClientConn and make a successful RPC.
274-
cc, err := grpc.NewClient(fmt.Sprintf("xds:///%s", serviceName), grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithResolvers(resolverBuilder))
274+
cc, err := grpc.NewClient(fmt.Sprintf("xds:///%s", serviceName),
275+
grpc.WithTransportCredentials(insecure.NewCredentials()),
276+
grpc.WithResolvers(resolverBuilder))
275277
if err != nil {
276278
t.Fatalf("failed to dial local test server: %v", err)
277279
}
@@ -318,7 +320,14 @@ func (s) TestLoadReportingPickFirstMultiLocality(t *testing.T) {
318320

319321
// Stop server 1 and send one more rpc. Now the request should go to server 2.
320322
server1.Stop()
321-
client.EmptyCall(ctx, &testpb.Empty{}, grpc.Peer(&peer))
323+
// The first call may go to server 1 and fail, so we send two requests.
324+
if _, err := client.EmptyCall(ctx, &testpb.Empty{}, grpc.Peer(&peer)); err != nil {
325+
t.Logf("First rpc EmptyCall() failed: %v", err)
326+
}
327+
328+
if _, err := client.EmptyCall(ctx, &testpb.Empty{}, grpc.Peer(&peer)); err != nil {
329+
t.Fatalf("rpc EmptyCall() failed: %v", err)
330+
}
322331

323332
// Verify that the request was sent to server 2.
324333
if got, want := testutils.ParsePort(t, peer.Addr.String()), port2; got != want {

0 commit comments

Comments
 (0)