From 2048371c947a7ec3365e564bb4bda96401241058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 29 Jul 2024 14:47:52 +0200 Subject: [PATCH] test: do not use RESOURCE_EXHAUSTED as it is retryable The test used the error code RESOURCE_EXHAUSTED to indicate that the server could not create any more sessions. This error code is now retryable, causing the test to become flaky. Change the error code to one that is not retryable. Fixes #3224 --- .../com/google/cloud/spanner/BatchCreateSessionsTest.java | 4 ++-- .../java/com/google/cloud/spanner/MockSpannerServiceImpl.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java index c252bb19238..8d359428c77 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java @@ -207,13 +207,13 @@ public void testSpannerReturnsAllAvailableSessionsAndThenNoSessions() } @Test - public void testSpannerReturnsResourceExhausted() throws InterruptedException { + public void testSpannerReturnsFailedPrecondition() throws InterruptedException { int minSessions = 100; int maxSessions = 1000; int expectedSessions; DatabaseClientImpl client; // Make the first BatchCreateSessions return an error. - mockSpanner.addException(Status.RESOURCE_EXHAUSTED.asRuntimeException()); + mockSpanner.addException(Status.FAILED_PRECONDITION.asRuntimeException()); try (Spanner spanner = createSpanner(minSessions, maxSessions)) { // Create a database client which will create a session pool. client = diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java index 54b992b69ff..5266ecad7c8 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java @@ -808,7 +808,7 @@ public void batchCreateSessions( batchCreateSessionsExecutionTime.simulateExecutionTime( exceptions, stickyGlobalExceptions, freezeLock); if (sessions.size() >= maxTotalSessions) { - throw Status.RESOURCE_EXHAUSTED + throw Status.FAILED_PRECONDITION .withDescription("Maximum number of sessions reached") .asRuntimeException(); }