sokui opened a new pull request, #7566:
URL: https://github.com/apache/ozone/pull/7566

   ## What changes were proposed in this pull request?
   HDDS-11784 adding missing parent directories for MPU abort and expired abort 
request
   
   Please describe your PR in detail:
   We observed lots of open key (files) in our FSO enabled ozone cluster. And 
these are all incomplete MPU keys.
   
   When I tried to abort MPU by using s3 cli as below, I got the exception 
complaining about the parent directory is not found.
   {code:bash}
   aws s3api abort-multipart-upload --endpoint 'xxxx' --bucket 
'2e76bd0f-9682-42c6-a5ce-3e32c5aa37b2' --key 
'CACHE.06e656c0-6622-48bb-89c2-39470764b1d0/abc.blob' --upload-id 
'4103c881-24fa-4992-b7b2-5474f8a7fbaf-113204926929050074'
   
   An error occurred (NoSuchUpload) when calling the AbortMultipartUpload 
operation: The specified multipart upload does not exist. The upload ID might 
be invalid, or the multipart upload might have been aborted or completed.
   {code}
   Exceptions in the log
   {code:java}
   NO_SUCH_MULTIPART_UPLOAD_ERROR 
org.apache.hadoop.ozone.om.exceptions.OMException: Abort Multipart Upload 
Failed: volume: s3v, bucket: 2e76bd0f-9682-42c6-a5ce-3e32c5aa37b2, key: 
CACHE.06e656c0-6622-48bb-89c2-39470764b1d0/abc.blob
   at 
org.apache.hadoop.ozone.om.request.s3.multipart.S3MultipartUploadAbortRequest.validateAndUpdateCache(S3MultipartUploadAbortRequest.java:148)
   at 
org.apache.hadoop.ozone.protocolPB.OzoneManagerRequestHandler.lambda$0(OzoneManagerRequestHandler.java:402)
   at org.apache.hadoop.util.MetricUtil.captureLatencyNs(MetricUtil.java:39)
   at 
org.apache.hadoop.ozone.protocolPB.OzoneManagerRequestHandler.handleWriteRequest(OzoneManagerRequestHandler.java:398)
   at 
org.apache.hadoop.ozone.om.ratis.OzoneManagerStateMachine.runCommand(OzoneManagerStateMachine.java:587)
   at 
org.apache.hadoop.ozone.om.ratis.OzoneManagerStateMachine.lambda$1(OzoneManagerStateMachine.java:375)
   at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
   at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
   at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
   at java.base/java.lang.Thread.run(Thread.java:833)
   Caused by: DIRECTORY_NOT_FOUND 
org.apache.hadoop.ozone.om.exceptions.OMException: Failed to find parent 
directory of CACHE.06e656c0-6622-48bb-89c2-39470764b1d0/abc.blob
   at 
org.apache.hadoop.ozone.om.request.file.OMFileRequest.getParentID(OMFileRequest.java:1038)
   at 
org.apache.hadoop.ozone.om.request.file.OMFileRequest.getParentID(OMFileRequest.java:988)
   at 
org.apache.hadoop.ozone.om.request.util.OMMultipartUploadUtils.getMultipartOpenKeyFSO(OMMultipartUploadUtils.java:122)
   at 
org.apache.hadoop.ozone.om.request.util.OMMultipartUploadUtils.getMultipartOpenKey(OMMultipartUploadUtils.java:99)
   at 
org.apache.hadoop.ozone.om.request.s3.multipart.S3MultipartUploadAbortRequest.getMultipartOpenKey(S3MultipartUploadAbortRequest.java:256)
   at 
org.apache.hadoop.ozone.om.request.s3.multipart.S3MultipartUploadAbortRequest.validateAndUpdateCache(S3MultipartUploadAbortRequest.java:145)
   ... 9 more
   {code}
   This issue is similar as the issue HDDS-10630. This PR brings the same 
mechanism which adds the missing parent directories to the table cache before 
we abort the MPU. The PR adds this mechanism to both 
`S3ExpiredMultipartUploadsAbortRequest` and 
`S3ExpiredMultipartUploadsAbortRequest`. Also the code is refactored so 
multiple places reuse the same mechanism
   
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-11784
   
   ## How was this patch tested?
   
   It tested by the CI. Also we validate it in our cluster.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to