Skip to content

Commit 61686a0

Browse files
authored
Fix failing s3 regression tests for MRAP (#6646)
* Fix failing s3 regression tests for MRAP * Add retry on async putObject to handle flaky MRAP disconnects
1 parent f13539f commit 61686a0

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/S3ChecksumsTestUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,11 @@ public static void assumeNotAccessPointWithPathStyle(UploadConfig config) {
203203
"Path style doesn't work with ARN type buckets");
204204
}
205205

206+
public static void assumeNotMRAP(UploadConfig config) {
207+
Assumptions.assumeFalse(config.getBucketType().equals(BucketType.MRAP),
208+
"MRAP buckets are not supported by TransferManager.");
209+
}
210+
206211
public static String crc32(String s) {
207212
return crc32(s.getBytes(StandardCharsets.UTF_8));
208213
}

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadAsyncRegressionTesting.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import software.amazon.awssdk.services.s3.regression.BucketType;
3838
import software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils;
3939
import software.amazon.awssdk.services.s3.regression.TestCallable;
40+
import software.amazon.awssdk.testutils.retry.RetryableTest;
4041
import software.amazon.awssdk.utils.Logger;
4142

4243
public class UploadAsyncRegressionTesting extends UploadStreamingRegressionTesting {
@@ -49,6 +50,7 @@ public static List<UploadConfig> testConfigs() {
4950
@ParameterizedTest
5051
@MethodSource("testConfigs")
5152
@Timeout(value = 120, unit = TimeUnit.SECONDS)
53+
@RetryableTest(maxRetries = 3)
5254
void putObject(UploadConfig config) throws Exception {
5355
assumeNotAccessPointWithPathStyle(config);
5456

@@ -79,7 +81,7 @@ void putObject(UploadConfig config) throws Exception {
7981
ClientOverrideConfiguration.Builder overrideConfiguration =
8082
ClientOverrideConfiguration.builder()
8183
.addExecutionInterceptor(recorder)
82-
.apiCallTimeout(Duration.of(30, ChronoUnit.SECONDS));
84+
.apiCallTimeout(Duration.of(90, ChronoUnit.SECONDS));
8385

8486
if (config.isPayloadSigning()) {
8587
overrideConfiguration.addExecutionInterceptor(new EnablePayloadSigningInterceptor());
@@ -137,5 +139,4 @@ void putObject(UploadConfig config) throws Exception {
137139
}
138140
}
139141
}
140-
141142
}

test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadTransferManagerRegressionTesting.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.services.s3.regression.upload;
1717

1818
import static software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils.assumeNotAccessPointWithPathStyle;
19+
import static software.amazon.awssdk.services.s3.regression.S3ChecksumsTestUtils.assumeNotMRAP;
1920
import static software.amazon.awssdk.services.s3.regression.S3ClientFlavor.MULTIPART_ENABLED;
2021

2122
import java.time.Duration;
@@ -48,6 +49,7 @@ public static List<UploadConfig> testConfigs() {
4849
void putObject(UploadConfig config) throws Exception {
4950

5051
assumeNotAccessPointWithPathStyle(config);
52+
assumeNotMRAP(config);
5153

5254
// For testing purposes, ContentProvider is Publisher<ByteBuffer> for async clients
5355
// There is no way to create AsyncRequestBody with a Publisher<ByteBuffer> and also provide the content length
@@ -99,6 +101,4 @@ void putObject(UploadConfig config) throws Exception {
99101
}
100102
}
101103
}
102-
103-
104104
}

0 commit comments

Comments
 (0)