From a70ebef366cd9f1070643e1be1de4a7da03e89c0 Mon Sep 17 00:00:00 2001 From: Armin Braun Date: Fri, 20 Mar 2020 12:23:40 +0100 Subject: [PATCH] Longer Timeout in S3 Retries Test (#53841) (#53847) The lower end of the timeout range of 100ms is prone to time out on CI before the mock REST server gets to sending a response that is not supposed to be a timeout. Using 1-3s here should make this safe at the cost of randomly making this test take a few seconds. Closes #53506 --- .../repositories/s3/S3BlobContainerRetriesTests.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobContainerRetriesTests.java b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobContainerRetriesTests.java index 7060082ffcd..a8affd31aa8 100644 --- a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobContainerRetriesTests.java +++ b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobContainerRetriesTests.java @@ -170,7 +170,7 @@ public class S3BlobContainerRetriesTests extends ESTestCase { } }); - final TimeValue readTimeout = TimeValue.timeValueMillis(between(100, 500)); + final TimeValue readTimeout = TimeValue.timeValueSeconds(between(1, 3)); final BlobContainer blobContainer = createBlobContainer(maxRetries, readTimeout, null, null); try (InputStream inputStream = blobContainer.readBlob("read_blob_max_retries")) { assertArrayEquals(bytes, BytesReference.toBytes(Streams.readFully(inputStream))); @@ -397,13 +397,15 @@ public class S3BlobContainerRetriesTests extends ESTestCase { return randomByteArrayOfLength(randomIntBetween(1, frequently() ? 512 : 1 << 20)); // rarely up to 1mb } + private static final Pattern RANGE_PATTERN = Pattern.compile("^bytes=([0-9]+)-9223372036854775806$"); + private static int getRangeStart(HttpExchange exchange) { final String rangeHeader = exchange.getRequestHeaders().getFirst("Range"); if (rangeHeader == null) { return 0; } - final Matcher matcher = Pattern.compile("^bytes=([0-9]+)-9223372036854775806$").matcher(rangeHeader); + final Matcher matcher = RANGE_PATTERN.matcher(rangeHeader); assertTrue(rangeHeader + " matches expected pattern", matcher.matches()); return Math.toIntExact(Long.parseLong(matcher.group(1))); }