|
32 | 32 | import com.amazonaws.services.s3.model.PutObjectRequest;
|
33 | 33 | import com.amazonaws.services.s3.model.UploadPartRequest;
|
34 | 34 | import com.amazonaws.services.s3.model.UploadPartResult;
|
| 35 | +import org.apache.logging.log4j.LogManager; |
| 36 | +import org.apache.logging.log4j.Logger; |
| 37 | +import org.apache.logging.log4j.message.ParameterizedMessage; |
35 | 38 | import org.apache.lucene.util.SetOnce;
|
36 | 39 | import org.elasticsearch.ExceptionsHelper;
|
37 | 40 | import org.elasticsearch.common.Nullable;
|
|
61 | 64 |
|
62 | 65 | class S3BlobContainer extends AbstractBlobContainer {
|
63 | 66 |
|
| 67 | + private static final Logger logger = LogManager.getLogger(S3BlobContainer.class); |
| 68 | + |
64 | 69 | /**
|
65 | 70 | * Maximum number of deletes in a {@link DeleteObjectsRequest}.
|
66 | 71 | * @see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html">S3 Documentation</a>.
|
@@ -194,6 +199,10 @@ private void doDeleteBlobs(List<String> blobNames, boolean relative) throws IOEx
|
194 | 199 | outstanding.removeAll(keysInRequest);
|
195 | 200 | outstanding.addAll(
|
196 | 201 | e.getErrors().stream().map(MultiObjectDeleteException.DeleteError::getKey).collect(Collectors.toSet()));
|
| 202 | + logger.warn( |
| 203 | + () -> new ParameterizedMessage("Failed to delete some blobs {}", e.getErrors() |
| 204 | + .stream().map(err -> "[" + err.getKey() + "][" + err.getCode() + "][" + err.getMessage() + "]") |
| 205 | + .collect(Collectors.toList())), e); |
197 | 206 | aex = ExceptionsHelper.useOrSuppress(aex, e);
|
198 | 207 | } catch (AmazonClientException e) {
|
199 | 208 | // The AWS client threw any unexpected exception and did not execute the request at all so we do not
|
|
0 commit comments