You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by ka...@apache.org on 2023/04/14 12:19:27 UTC

[druid] 01/01: Adding missed s3 retry handling in storage connector. (#14086)

This is an automated email from the ASF dual-hosted git repository.

karan pushed a commit to branch 26.0.0
in repository https://gitbox.apache.org/repos/asf/druid.git

commit 1b0c17c43aa1021db27013bbbe9cc4b997d8f728
Author: Karan Kumar <ka...@gmail.com>
AuthorDate: Fri Apr 14 17:21:39 2023 +0530

    Adding missed s3 retry handling in storage connector. (#14086)
    
    (cherry picked from commit bdc547709489adedb00263a7ca04a5cfc15eca90)
---
 .../druid/storage/s3/output/RetryableS3OutputStream.java     | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/output/RetryableS3OutputStream.java b/extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/output/RetryableS3OutputStream.java
index 4e53016b81..ba3d461bee 100644
--- a/extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/output/RetryableS3OutputStream.java
+++ b/extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/output/RetryableS3OutputStream.java
@@ -126,9 +126,15 @@ public class RetryableS3OutputStream extends OutputStream
     this.s3 = s3;
     this.s3Key = s3Key;
 
-    final InitiateMultipartUploadResult result = s3.initiateMultipartUpload(
-        new InitiateMultipartUploadRequest(config.getBucket(), s3Key)
-    );
+    final InitiateMultipartUploadResult result;
+    try {
+      result = S3Utils.retryS3Operation(() -> s3.initiateMultipartUpload(
+          new InitiateMultipartUploadRequest(config.getBucket(), s3Key)
+      ), config.getMaxRetry());
+    }
+    catch (Exception e) {
+      throw new IOException("Unable to start multipart upload", e);
+    }
     this.uploadId = result.getUploadId();
     this.chunkStorePath = new File(config.getTempDir(), uploadId + UUID.randomUUID());
     FileUtils.mkdirp(this.chunkStorePath);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org