diff --git a/.github/workflows/s3-regression-tests.yml b/.github/workflows/s3-regression-tests.yml index 3f8a997cb05c..bae74ac51682 100644 --- a/.github/workflows/s3-regression-tests.yml +++ b/.github/workflows/s3-regression-tests.yml @@ -22,8 +22,10 @@ jobs: - name: Check for changes related to s3 id: check-changes run: | - git fetch origin ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} --depth 1 - CHANGED_FILES=$(git diff remotes/origin/${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} --name-only) + BASE_REF=${{ github.base_ref || github.event.merge_group.base_ref || github.ref }} + BASE_REF=${BASE_REF#refs/heads/} + git fetch origin "$BASE_REF" --depth 1 + CHANGED_FILES=$(git diff origin/"$BASE_REF" --name-only) if echo "$CHANGED_FILES" | grep -q -E '^core/|^services/s3/|^services-custom/s3-transfer-manager/|^http-client-spi/|^http-clients/'; then echo "Detected changes in S3, HTTP client, or core modules" echo "has_s3_related_changes=true" >> $GITHUB_OUTPUT diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java index 1b4f7f105a38..d976aa6342cf 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java @@ -74,6 +74,7 @@ public static void setUpForAllIntegTests() throws Exception { s3CrtAsync = S3CrtAsyncClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .region(DEFAULT_REGION) + .maxConcurrency(1) .build(); tmCrt = S3TransferManager.builder() .s3Client(s3CrtAsync) diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerDownloadPauseResumeIntegrationTest.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerDownloadPauseResumeIntegrationTest.java index e01cf014870b..0d5bc18f7ae7 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerDownloadPauseResumeIntegrationTest.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerDownloadPauseResumeIntegrationTest.java @@ -56,8 +56,8 @@ public class S3TransferManagerDownloadPauseResumeIntegrationTest extends S3Integ private static final Logger log = Logger.loggerFor(S3TransferManagerDownloadPauseResumeIntegrationTest.class); private static final String BUCKET = temporaryBucketName(S3TransferManagerDownloadPauseResumeIntegrationTest.class); private static final String KEY = "key"; - // 24 * MB is chosen to make sure we have data written in the file already upon pausing. - private static final long OBJ_SIZE = 24 * MB; + // 50 * MB is chosen to make sure we have data written in the file already upon pausing. + private static final long OBJ_SIZE = 50 * MB; private static File sourceFile; @BeforeAll @@ -152,8 +152,7 @@ void pauseAndResume_ObjectNotChanged_shouldResumeDownload(S3TransferManager tm) assertThat(resumableFileDownload.s3ObjectLastModified()).hasValue(testDownloadListener.getObjectResponse.lastModified()); assertThat(bytesTransferred).isEqualTo(path.toFile().length()); assertThat(resumableFileDownload.totalSizeInBytes()).hasValue(sourceFile.length()); - - assertThat(bytesTransferred).isLessThan(sourceFile.length()); + assertThat(bytesTransferred).isLessThanOrEqualTo(sourceFile.length()); assertThat(download.completionFuture()).isCancelled(); log.debug(() -> "Resuming download "); @@ -242,7 +241,7 @@ private static void waitUntilFirstByteBufferDelivered(FileDownload download) { .addAcceptor(WaiterAcceptor.retryOnResponseAcceptor(r -> true)) .overrideConfiguration(o -> o.waitTimeout(Duration.ofMinutes(1)) .maxAttempts(Integer.MAX_VALUE) - .backoffStrategy(FixedDelayBackoffStrategy.create(Duration.ofMillis(100)))) + .backoffStrategy(FixedDelayBackoffStrategy.create(Duration.ofMillis(10)))) .build(); waiter.run(() -> download.progress().snapshot()); } diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java index ffc9a3e7b547..9c2fd9dacdc4 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelperTest.java @@ -561,7 +561,7 @@ void uploadDirectory_customMaxConcurrency_shouldLimitConcurrentOperations() thro assertThat(observedPeak) .as("Implementation allowed %d concurrent operations but was configured for %d", observedPeak, configuredMaxConcurrency) - .isEqualTo(configuredMaxConcurrency); + .isLessThanOrEqualTo(configuredMaxConcurrency); // Release the phase to let operations complete phaser.arriveAndDeregister();