From 5d7fafec14030f19ad4dc73f6a3a009c1b12aae7 Mon Sep 17 00:00:00 2001 From: Armin Braun Date: Tue, 6 Aug 2019 16:11:19 +0200 Subject: [PATCH] Add Assertion to Ensure Retries in S3BlobContainer (#45224) (#45230) * We need a `markSupported` input stream to retry uploads * Relates #45153 --- .../java/org/elasticsearch/repositories/s3/S3BlobContainer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java b/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java index 9aab721f3c4..9e9cef9cd0e 100644 --- a/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java +++ b/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java @@ -99,6 +99,7 @@ class S3BlobContainer extends AbstractBlobContainer { */ @Override public void writeBlob(String blobName, InputStream inputStream, long blobSize, boolean failIfAlreadyExists) throws IOException { + assert inputStream.markSupported() : "No mark support on inputStream breaks the S3 SDK's ability to retry requests"; SocketAccess.doPrivilegedIOException(() -> { if (blobSize <= blobStore.bufferSizeInBytes()) { executeSingleUpload(blobStore, buildKey(blobName), inputStream, blobSize);