Skip to content

Commit 942e2e5

Browse files
authored
Update retryable errors and delay (#1708)
Signed-off-by: Bala.FA <bala@minio.io>
1 parent 1c9da2c commit 942e2e5

6 files changed

Lines changed: 23 additions & 10 deletions

File tree

api/src/main/java/io/minio/BaseS3Client.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,21 @@ public abstract class BaseS3Client implements AutoCloseable {
8686
}
8787
}
8888

89+
// Update the list from https://github.com/minio/minio-go/blob/master/retry.go#L98
8990
protected static final Set<String> RETRYABLE_ERRORS =
90-
ImmutableSet.of("InternalError", "RequestTimeout", "ServiceUnavailable", "SlowDown");
91+
ImmutableSet.of(
92+
"RequestError",
93+
"RequestTimeout",
94+
"Throttling",
95+
"ThrottlingException",
96+
"RequestLimitExceeded",
97+
"RequestThrottled",
98+
"InternalError",
99+
"ExpiredToken",
100+
"ExpiredTokenException",
101+
"SlowDown",
102+
"SlowDownWrite",
103+
"SlowDownRead");
91104
protected static final String NO_SUCH_BUCKET_MESSAGE = "Bucket does not exist";
92105
protected static final String NO_SUCH_BUCKET = "NoSuchBucket";
93106
protected static final String NO_SUCH_BUCKET_POLICY = "NoSuchBucketPolicy";

api/src/main/java/io/minio/CompleteMultipartUploadArgs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class CompleteMultipartUploadArgs extends ObjectArgs {
2525
private String uploadId;
2626
private Part[] parts;
2727
private ServerSideEncryption.CustomerKey ssec;
28-
private long delayMs = 100L;
28+
private long delayMs = 200L;
2929
private int maxRetries = 5;
3030

3131
protected CompleteMultipartUploadArgs() {}
@@ -104,7 +104,7 @@ public Builder ssec(ServerSideEncryption.CustomerKey ssec) {
104104
return this;
105105
}
106106

107-
/** Set delay between retries. Value &lt;= 0 makes no delay (default 100ms). */
107+
/** Set delay between retries. Value &lt;= 0 makes no delay (default 200ms). */
108108
public Builder delayMs(long delayMs) {
109109
operations.add(args -> args.delayMs = delayMs);
110110
return this;

api/src/main/java/io/minio/ComposeObjectArgs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
public class ComposeObjectArgs extends ObjectWriteArgs {
2828
List<SourceObject> sources;
29-
private long delayMs = 100L;
29+
private long delayMs = 200L;
3030
private int maxRetries = 5;
3131

3232
protected ComposeObjectArgs() {}
@@ -87,7 +87,7 @@ public Builder sources(List<SourceObject> sources) {
8787
return this;
8888
}
8989

90-
/** Set delay between retries. Value &lt;= 0 makes no delay (default 100ms). */
90+
/** Set delay between retries. Value &lt;= 0 makes no delay (default 200ms). */
9191
public Builder delayMs(long delayMs) {
9292
operations.add(args -> args.delayMs = delayMs);
9393
return this;

api/src/main/java/io/minio/Http.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ public StatusRetryInterceptor(
753753
StatusRetryInterceptor interceptor, PrintWriter traceWriter, boolean isBucketRequest) {
754754
this(
755755
interceptor != null ? interceptor.retryStatusCodes : RETRIABLE_STATUS_CODES,
756-
interceptor != null ? interceptor.delayMs : 100,
756+
interceptor != null ? interceptor.delayMs : 200,
757757
interceptor != null ? interceptor.maxRetries : 5,
758758
traceWriter,
759759
isBucketRequest);

api/src/main/java/io/minio/PutObjectBaseArgs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public abstract class PutObjectBaseArgs extends ObjectWriteArgs {
2828
protected MediaType contentType;
2929
protected Checksum.Algorithm checksum;
3030
protected int parallelUploads;
31-
protected long delayMs = 100L;
31+
protected long delayMs = 200L;
3232
protected int maxRetries = 5;
3333

3434
public Long objectSize() {
@@ -149,7 +149,7 @@ public B parallelUploads(int parallelUploads) {
149149
return (B) this;
150150
}
151151

152-
/** Set delay between retries. Value &lt;= 0 disables retry (default 100ms). */
152+
/** Set delay between retries. Value &lt;= 0 disables retry (default 200ms). */
153153
public B delayMs(long delayMs) {
154154
operations.add(args -> args.delayMs = delayMs);
155155
return (B) this;

api/src/main/java/io/minio/RemoveObjectsArgs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class RemoveObjectsArgs extends BucketArgs {
2525
private boolean bypassGovernanceMode;
2626
private Iterable<DeleteRequest.Object> objects = new ArrayList<>();
27-
private long delayMs = 100L;
27+
private long delayMs = 200L;
2828
private int maxRetries = 5;
2929

3030
public boolean bypassGovernanceMode() {
@@ -60,7 +60,7 @@ public Builder objects(Iterable<DeleteRequest.Object> objects) {
6060
return this;
6161
}
6262

63-
/** Set delay between retries. Value &lt;= 0 makes no delay (default 100ms). */
63+
/** Set delay between retries. Value &lt;= 0 makes no delay (default 200ms). */
6464
public Builder delayMs(long delayMs) {
6565
operations.add(args -> args.delayMs = delayMs);
6666
return this;

0 commit comments

Comments
 (0)