Skip to content

Commit 5d67feb

Browse files
committed
review feedback
1 parent 62b53da commit 5d67feb

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobStore.java

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -397,21 +397,7 @@ private void deletePartition(OperationPurpose purpose, List<String> partition, D
397397
} catch (MultiObjectDeleteException e) {
398398
// We are sending quiet mode requests so we can't use the deleted keys entry on the exception and instead
399399
// first remove all keys that were sent in the request and then add back those that ran into an exception.
400-
logger.warn(() -> {
401-
final var sb = new StringBuilder("Failed to delete some blobs ");
402-
Strings.collectionToDelimitedStringWithLimit(
403-
(Iterable<String>) () -> e.getErrors()
404-
.stream()
405-
.map(err -> "[" + err.getKey() + "][" + err.getCode() + "][" + err.getMessage() + "]")
406-
.iterator(),
407-
",",
408-
"",
409-
"",
410-
1000,
411-
sb
412-
);
413-
return sb;
414-
}, e);
400+
logger.warn(buildDeletionErrorMessage(e), e);
415401
deletionExceptions.useOrMaybeSuppress(e);
416402
return;
417403
} catch (AmazonClientException e) {
@@ -434,6 +420,26 @@ private void deletePartition(OperationPurpose purpose, List<String> partition, D
434420
}
435421
}
436422

423+
private String buildDeletionErrorMessage(MultiObjectDeleteException e) {
424+
final var sb = new StringBuilder("Failed to delete some blobs ");
425+
final var errors = e.getErrors();
426+
for (int i = 0; i < errors.size() && i < MAX_DELETE_EXCEPTIONS; i++) {
427+
final var err = errors.get(i);
428+
sb.append("[").append(err.getKey()).append("][").append(err.getCode()).append("][").append(err.getMessage()).append("]");
429+
if (i < errors.size() - 1) {
430+
sb.append(",");
431+
}
432+
}
433+
if (errors.size() > MAX_DELETE_EXCEPTIONS) {
434+
sb.append("... (")
435+
.append(errors.size())
436+
.append(" in total, ")
437+
.append(errors.size() - MAX_DELETE_EXCEPTIONS)
438+
.append(" omitted)");
439+
}
440+
return sb.toString();
441+
}
442+
437443
/**
438444
* If there are remaining retries, pause for the configured interval then return true
439445
*

modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobContainerRetriesTests.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ public void testSuppressedDeletionErrorsAreCapped() {
11131113

11141114
public void testTrimmedLogAndCappedSuppressedErrorOnMultiObjectDeletionException() {
11151115
final TimeValue readTimeout = TimeValue.timeValueMillis(randomIntBetween(100, 500));
1116-
int maxBulkDeleteSize = randomIntBetween(10, 20);
1116+
int maxBulkDeleteSize = randomIntBetween(10, 30);
11171117
final BlobContainer blobContainer = createBlobContainer(1, readTimeout, true, null, maxBulkDeleteSize);
11181118

11191119
final Pattern pattern = Pattern.compile("<Key>(.+?)</Key>");
@@ -1129,7 +1129,7 @@ public void testTrimmedLogAndCappedSuppressedErrorOnMultiObjectDeletionException
11291129
deletes.append("<Error>");
11301130
deletes.append("<Code>").append(randomAlphaOfLength(10)).append("</Code>");
11311131
deletes.append("<Key>").append(key).append("</Key>");
1132-
deletes.append("<Message>").append(randomAlphaOfLength(200)).append("</Message>");
1132+
deletes.append("<Message>").append(randomAlphaOfLength(40)).append("</Message>");
11331133
deletes.append("</Error>");
11341134
}
11351135
deletes.append("</DeleteResult>");
@@ -1150,7 +1150,9 @@ public void testTrimmedLogAndCappedSuppressedErrorOnMultiObjectDeletionException
11501150
"deletion log",
11511151
S3BlobStore.class.getCanonicalName(),
11521152
Level.WARN,
1153-
"Failed to delete some blobs [*... (* in total, * omitted)"
1153+
blobs.size() > S3BlobStore.MAX_DELETE_EXCEPTIONS
1154+
? "Failed to delete some blobs [*... (* in total, * omitted)"
1155+
: "Failed to delete some blobs [*]"
11541156
)
11551157
);
11561158
var exception = expectThrows(

0 commit comments

Comments
 (0)