Skip to content

Commit 1982892

Browse files
committed
add timeout. Add sync http client with higher conn pool manually and close s3 client
1 parent 7732181 commit 1982892

9 files changed

+41
-0
lines changed

test/s3-tests/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@
176176
<version>${project.version}</version>
177177
<scope>test</scope>
178178
</dependency>
179+
<dependency>
180+
<groupId>software.amazon.awssdk</groupId>
181+
<artifactId>apache-client</artifactId>
182+
<version>${project.version}</version>
183+
<scope>test</scope>
184+
</dependency>
179185
</dependencies>
180186

181187
<build>

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121

2222
import java.util.List;
2323
import java.util.concurrent.Callable;
24+
import java.util.concurrent.TimeUnit;
2425
import org.junit.jupiter.api.Assumptions;
26+
import org.junit.jupiter.api.Timeout;
2527
import org.junit.jupiter.params.ParameterizedTest;
2628
import org.junit.jupiter.params.provider.MethodSource;
2729
import software.amazon.awssdk.awscore.AwsClient;
@@ -45,6 +47,7 @@ public class ControlPlaneOperationRegressionTesting extends BaseS3RegressionTest
4547
// Request checksum required
4648
@ParameterizedTest
4749
@MethodSource("testConfigs")
50+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
4851
void deleteObject(TestConfig config) throws Exception {
4952
assumeNotAccessPointWithPathStyle(config);
5053

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.junit.jupiter.api.Assumptions;
4141
import org.junit.jupiter.api.BeforeAll;
4242
import org.junit.jupiter.api.BeforeEach;
43+
import org.junit.jupiter.api.Timeout;
4344
import org.junit.jupiter.params.ParameterizedTest;
4445
import org.junit.jupiter.params.provider.MethodSource;
4546
import software.amazon.awssdk.core.ResponseBytes;
@@ -111,6 +112,7 @@ void testCleanup() {
111112

112113
@ParameterizedTest
113114
@MethodSource("downloadConfigs")
115+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
114116
void downloadObject(DownloadConfig config) throws Exception {
115117
assumeNotAccessPointWithPathStyle(config.baseConfig());
116118

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import software.amazon.awssdk.checksums.DefaultChecksumAlgorithm;
3232
import software.amazon.awssdk.checksums.SdkChecksum;
3333
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
34+
import software.amazon.awssdk.http.SdkHttpClient;
35+
import software.amazon.awssdk.http.apache.ApacheHttpClient;
3436
import software.amazon.awssdk.regions.Region;
3537
import software.amazon.awssdk.services.s3.S3AsyncClient;
3638
import software.amazon.awssdk.services.s3.S3Client;
@@ -43,6 +45,7 @@
4345
import software.amazon.awssdk.services.s3.model.S3Exception;
4446
import software.amazon.awssdk.services.s3.regression.upload.FlattenUploadConfig;
4547
import software.amazon.awssdk.services.s3control.S3ControlClient;
48+
import software.amazon.awssdk.services.s3control.model.CloudWatchMetrics;
4649
import software.amazon.awssdk.services.s3control.model.CreateMultiRegionAccessPointRequest;
4750
import software.amazon.awssdk.services.s3control.model.GetMultiRegionAccessPointResponse;
4851
import software.amazon.awssdk.services.s3control.model.MultiRegionAccessPointStatus;
@@ -277,13 +280,20 @@ public static S3Client makeSyncClient(FlattenUploadConfig config, ClientOverride
277280
Region region, AwsCredentialsProvider provider) {
278281
return S3Client.builder()
279282
.overrideConfiguration(overrideConfiguration)
283+
.httpClient(makeHttpClient())
280284
.forcePathStyle(config.isForcePathStyle())
281285
.requestChecksumCalculation(config.getRequestChecksumValidation())
282286
.region(region)
283287
.credentialsProvider(provider)
284288
.build();
285289
}
286290

291+
private static SdkHttpClient makeHttpClient() {
292+
return ApacheHttpClient.builder()
293+
.maxConnections(10_000)
294+
.build();
295+
}
296+
287297
public static S3AsyncClient makeAsyncClient(FlattenUploadConfig config,
288298
S3ClientFlavor flavor,
289299
ClientOverrideConfiguration overrideConfiguration,

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121

2222
import java.util.List;
2323
import java.util.Optional;
24+
import java.util.concurrent.TimeUnit;
25+
import org.junit.Test;
2426
import org.junit.jupiter.api.Assumptions;
27+
import org.junit.jupiter.api.BeforeAll;
28+
import org.junit.jupiter.api.Timeout;
2529
import org.junit.jupiter.params.ParameterizedTest;
2630
import org.junit.jupiter.params.provider.MethodSource;
2731
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
@@ -44,6 +48,7 @@ public static List<FlattenUploadConfig> testConfigs() {
4448

4549
@ParameterizedTest
4650
@MethodSource("testConfigs")
51+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
4752
void putObject(FlattenUploadConfig config) throws Exception {
4853
assumeNotAccessPointWithPathStyle(config);
4954

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import static software.amazon.awssdk.services.s3.regression.S3ClientFlavor.CRT_BASED;
2121

2222
import java.util.List;
23+
import java.util.concurrent.TimeUnit;
2324
import org.junit.jupiter.api.Assumptions;
25+
import org.junit.jupiter.api.Timeout;
2426
import org.junit.jupiter.params.ParameterizedTest;
2527
import org.junit.jupiter.params.provider.MethodSource;
2628
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
@@ -40,6 +42,7 @@ public static List<FlattenUploadConfig> testConfigs() {
4042

4143
@ParameterizedTest
4244
@MethodSource("testConfigs")
45+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
4346
void putObject(FlattenUploadConfig config) throws Exception {
4447
assumeNotAccessPointWithPathStyle(config);
4548

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ protected TestCallable<PutObjectResponse> callPutObject(PutObjectRequest request
130130
return s3Client.putObject(request, requestBody);
131131
} catch (Exception e) {
132132
throw new RuntimeException(e);
133+
} finally {
134+
s3Client.close();
133135
}
134136
};
135137
return new TestCallable<>(s3Client, callable);
@@ -149,6 +151,8 @@ protected TestCallable<PutObjectResponse> callPutObject(PutObjectRequest request
149151
return CompletableFutureUtils.joinLikeSync(future);
150152
} catch (Exception e) {
151153
throw new RuntimeException(e);
154+
} finally {
155+
s3Client.close();
152156
}
153157
};
154158
return new TestCallable<>(s3Client, callable);
@@ -170,6 +174,8 @@ protected TestCallable<PutObjectResponse> callTmUpload(PutObjectRequest request,
170174
return completedUpload.response();
171175
} catch (Exception e) {
172176
throw new RuntimeException(e);
177+
} finally {
178+
transferManager.close();
173179
}
174180
};
175181
return new TestCallable<>(transferManager, callable);

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.util.List;
2222
import java.util.Optional;
23+
import java.util.concurrent.TimeUnit;
24+
import org.junit.jupiter.api.Timeout;
2325
import org.junit.jupiter.params.ParameterizedTest;
2426
import org.junit.jupiter.params.provider.MethodSource;
2527
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
@@ -42,6 +44,7 @@ public static List<FlattenUploadConfig> testConfigs() {
4244

4345
@ParameterizedTest
4446
@MethodSource("testConfigs")
47+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
4548
void putObject(FlattenUploadConfig config) throws Exception {
4649
assumeNotAccessPointWithPathStyle(config);
4750

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
import static software.amazon.awssdk.services.s3.regression.S3ClientFlavor.MULTIPART_ENABLED;
2020

2121
import java.util.List;
22+
import java.util.concurrent.TimeUnit;
2223
import org.junit.jupiter.api.Assumptions;
24+
import org.junit.jupiter.api.Timeout;
2325
import org.junit.jupiter.params.ParameterizedTest;
2426
import org.junit.jupiter.params.provider.MethodSource;
2527
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
@@ -40,6 +42,7 @@ public static List<FlattenUploadConfig> testConfigs() {
4042

4143
@ParameterizedTest
4244
@MethodSource("testConfigs")
45+
@Timeout(value = 120, unit = TimeUnit.SECONDS)
4346
void putObject(FlattenUploadConfig config) throws Exception {
4447

4548
assumeNotAccessPointWithPathStyle(config);

0 commit comments

Comments
 (0)