Skip to content

Commit b91f658

Browse files
authored
test(spanner): fix retry unit tests with RESOURCE_EXHAUSTED errors (#10117)
* test(spanner): fix retry unit tests with RESOURCE_EXHAUSTED errors * fix comments
1 parent b9b55e0 commit b91f658

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed

spanner/client_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3989,7 +3989,6 @@ func TestClient_WithoutCustomBatchTimeout(t *testing.T) {
39893989
}
39903990

39913991
func TestClient_CallOptions(t *testing.T) {
3992-
t.Skip("https://github.com/googleapis/google-cloud-go/issues/10069")
39933992
t.Parallel()
39943993
co := &vkit.CallOptions{
39953994
CreateSession: []gax.CallOption{
@@ -4016,7 +4015,7 @@ func TestClient_CallOptions(t *testing.T) {
40164015
cs := &gax.CallSettings{}
40174016
// This is the default retry setting.
40184017
c.CallOptions.CreateSession[1].Resolve(cs)
4019-
if got, want := fmt.Sprintf("%v", cs.Retry()), "&{{250000000 32000000000 1.3 0} [14]}"; got != want {
4018+
if got, want := fmt.Sprintf("%v", cs.Retry()), "&{{250000000 32000000000 1.3 0} [14 8]}"; got != want {
40204019
t.Fatalf("merged CallOptions is incorrect: got %v, want %v", got, want)
40214020
}
40224021

spanner/internal/testutil/inmem_spanner_server.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,8 +730,9 @@ func (s *inMemSpannerServer) BatchCreateSessions(ctx context.Context, req *spann
730730
sessionsToCreate := req.SessionCount
731731
s.mu.Lock()
732732
defer s.mu.Unlock()
733+
// return a non-retryable error if the limit is reached
733734
if s.maxSessionsReturnedByServerInTotal > int32(0) && int32(len(s.sessions)) >= s.maxSessionsReturnedByServerInTotal {
734-
return nil, gstatus.Error(codes.ResourceExhausted, "No more sessions available")
735+
return nil, gstatus.Error(codes.OutOfRange, "No more sessions available")
735736
}
736737
if sessionsToCreate > s.maxSessionsReturnedByServerPerBatchRequest {
737738
sessionsToCreate = s.maxSessionsReturnedByServerPerBatchRequest

spanner/sessionclient_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,6 @@ func TestBatchCreateSessions_ServerReturnsLessThanRequestedSessions(t *testing.T
424424
}
425425

426426
func TestBatchCreateSessions_ServerExhausted(t *testing.T) {
427-
t.Skip("https://github.com/googleapis/google-cloud-go/issues/10070")
428427
t.Parallel()
429428

430429
numChannels := 4
@@ -443,12 +442,12 @@ func TestBatchCreateSessions_ServerExhausted(t *testing.T) {
443442
consumer := newTestConsumer(numSessions)
444443
client.sc.batchCreateSessions(numSessions, true, consumer)
445444
<-consumer.receivedAll
446-
// Session creation should end with at least one RESOURCE_EXHAUSTED error.
445+
// Session creation should end with at least one non-retryable error.
447446
if len(consumer.errors) == 0 {
448447
t.Fatalf("Error count mismatch\nGot: %d\nWant: > %d", len(consumer.errors), 0)
449448
}
450449
for _, e := range consumer.errors {
451-
if g, w := status.Code(e.err), codes.ResourceExhausted; g != w {
450+
if g, w := status.Code(e.err), codes.OutOfRange; g != w {
452451
t.Fatalf("Error code mismath\nGot: %v\nWant: %v", g, w)
453452
}
454453
}

0 commit comments

Comments
 (0)