Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 55f726f

Browse files
authoredJul 12, 2024··
Double timeouts in serverless mode to reduce test execution flakiness. (#1441)
JAVA-5469
1 parent b7eed4c commit 55f726f

File tree

5 files changed

+63
-46
lines changed

5 files changed

+63
-46
lines changed
 

‎driver-core/src/test/functional/com/mongodb/ClusterFixture.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -830,4 +830,11 @@ public static int getReferenceCountAfterTimeout(final ReferenceCounted reference
830830
public static ClusterSettings.Builder setDirectConnection(final ClusterSettings.Builder builder) {
831831
return builder.mode(ClusterConnectionMode.SINGLE).hosts(singletonList(getPrimary()));
832832
}
833+
834+
public static int applyTimeoutMultiplierForServerless(final int timeoutMs) {
835+
if (ClusterFixture.isServerlessTest()) {
836+
return timeoutMs * 2;
837+
}
838+
return timeoutMs;
839+
}
833840
}

‎driver-reactive-streams/src/test/functional/com/mongodb/reactivestreams/client/ClientSideOperationTimeoutProseTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import java.util.stream.Collectors;
5959

6060
import static com.mongodb.ClusterFixture.TIMEOUT_DURATION;
61+
import static com.mongodb.ClusterFixture.applyTimeoutMultiplierForServerless;
6162
import static com.mongodb.ClusterFixture.isDiscoverableReplicaSet;
6263
import static com.mongodb.ClusterFixture.isServerlessTest;
6364
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
@@ -119,12 +120,12 @@ public void testGridFSUploadViaOpenUploadStreamTimeout() {
119120
+ " data: {"
120121
+ " failCommands: [\"insert\"],"
121122
+ " blockConnection: true,"
122-
+ " blockTimeMS: " + (rtt + 405)
123+
+ " blockTimeMS: " + (rtt + applyTimeoutMultiplierForServerless(405))
123124
+ " }"
124125
+ "}");
125126

126127
try (MongoClient client = createReactiveClient(getMongoClientSettingsBuilder()
127-
.timeout(rtt + 400, TimeUnit.MILLISECONDS))) {
128+
.timeout(rtt + applyTimeoutMultiplierForServerless(400), TimeUnit.MILLISECONDS))) {
128129
MongoDatabase database = client.getDatabase(gridFsFileNamespace.getDatabaseName());
129130
GridFSBucket gridFsBucket = createReaciveGridFsBucket(database, GRID_FS_BUCKET_NAME);
130131

@@ -178,12 +179,12 @@ public void testAbortingGridFsUploadStreamTimeout() throws ExecutionException, I
178179
+ " data: {"
179180
+ " failCommands: [\"delete\"],"
180181
+ " blockConnection: true,"
181-
+ " blockTimeMS: " + (rtt + 405)
182+
+ " blockTimeMS: " + (rtt + applyTimeoutMultiplierForServerless(405))
182183
+ " }"
183184
+ "}");
184185

185186
try (MongoClient client = createReactiveClient(getMongoClientSettingsBuilder()
186-
.timeout(rtt + 400, TimeUnit.MILLISECONDS))) {
187+
.timeout(rtt + applyTimeoutMultiplierForServerless(400), TimeUnit.MILLISECONDS))) {
187188
MongoDatabase database = client.getDatabase(gridFsFileNamespace.getDatabaseName());
188189
GridFSBucket gridFsBucket = createReaciveGridFsBucket(database, GRID_FS_BUCKET_NAME);
189190

0 commit comments

Comments
 (0)
Please sign in to comment.