[ 
https://issues.apache.org/jira/browse/HDDS-1950?focusedWorklogId=298463&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-298463
 ]

ASF GitHub Bot logged work on HDDS-1950:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 21/Aug/19 06:38
            Start Date: 21/Aug/19 06:38
    Worklog Time Spent: 10m 
      Work Description: elek commented on pull request #1278: HDDS-1950. S3 MPU 
part-list call fails if there are no parts
URL: https://github.com/apache/hadoop/pull/1278#discussion_r316018169
 
 

 ##########
 File path: 
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
 ##########
 @@ -1329,8 +1329,16 @@ public OmMultipartUploadListParts listParts(String 
volumeName,
             multipartKeyInfo.getPartKeyInfoMap();
         Iterator<Map.Entry<Integer, PartKeyInfo>> partKeyInfoMapIterator =
             partKeyInfoMap.entrySet().iterator();
-        HddsProtos.ReplicationType replicationType =
-            partKeyInfoMap.firstEntry().getValue().getPartKeyInfo().getType();
+
+        OmKeyInfo omKeyInfo =
+            metadataManager.getOpenKeyTable().get(multipartKey);
+
+        if (omKeyInfo == null) {
+          throw new IllegalStateException(
+              "Open key is missing for multipart upload " + multipartKey);
+        }
+
+        HddsProtos.ReplicationType replicationType = omKeyInfo.getType();
 
 Review comment:
   Thanks the idea @lokeshj1703 and @bharatviswa504 
   
   Updated the patch according to this suggestion.
 
----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 298463)
    Time Spent: 1.5h  (was: 1h 20m)

> S3 MPU part-list call fails if there are no parts
> -------------------------------------------------
>
>                 Key: HDDS-1950
>                 URL: https://issues.apache.org/jira/browse/HDDS-1950
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: S3
>            Reporter: Elek, Marton
>            Assignee: Elek, Marton
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> If an S3 multipart upload is created but no part is upload the part list 
> can't be called because it throws HTTP 500:
> Create an MPU:
> {code}
> aws s3api --endpoint http://localhost:9999 create-multipart-upload 
> --bucket=docker --key=testkeu                                         
> {
>     "Bucket": "docker",
>     "Key": "testkeu",
>     "UploadId": "85343e71-4c16-4a75-bb55-01f56a9339b2-102592678478217234"
> }
> {code}
> List the parts:
> {code}
> aws s3api --endpoint http://localhost:9999 list-parts  --bucket=docker 
> --key=testkeu 
> --upload-id=85343e71-4c16-4a75-bb55-01f56a9339b2-102592678478217234
> {code}
> It throws an exception on the server side, because in the 
> KeyManagerImpl.listParts the  ReplicationType is retrieved from the first 
> part:
> {code}
>         HddsProtos.ReplicationType replicationType =
>             partKeyInfoMap.firstEntry().getValue().getPartKeyInfo().getType();
> {code}
> Which is not yet available in this use case.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to