[ 
https://issues.apache.org/jira/browse/HDFS-9799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15149097#comment-15149097
 ] 

Zhe Zhang commented on HDFS-9799:
---------------------------------

Thanks [~xyao] for the discussion.

{{FSNamesystem#getEZForPath}} gets IOExceptions at multiple places:
# {{checkOperation}}
# {{FSDirEncryptionZoneOp#getEZForPath}} => {{resolvePath}}, 
{{getINodesInPath}} etc.

So the IOException from the {{getEZForPath}} call itself is pretty hard to get 
rid of. We could try swallowing and handling the IOException at 
{{DFSClient#getEZForPath}} level. But removing an exception from a public API 
will cause surprises to applications as well. 

So I suggest we handle the exception at {{getTrashRoot}} / {{getTrashRoots}} 
level. Let me know if this makes sense.

> Reimplement getCurrentTrashDir to remove incompatibility
> --------------------------------------------------------
>
>                 Key: HDFS-9799
>                 URL: https://issues.apache.org/jira/browse/HDFS-9799
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>            Reporter: Zhe Zhang
>            Assignee: Zhe Zhang
>            Priority: Blocker
>         Attachments: HDFS-9799.00.patch, HDFS-9799.01.patch, 
> HDFS-9799.02.patch, HDFS-9799.03.patch, HDFS-9799.04.patch
>
>
> HDFS-8831 changed the signature of {{TrashPolicy#getCurrentTrashDir}} by 
> adding an IOException. This breaks other applications using this public API. 
> This JIRA aims to reimplement the logic to safely handle the IOException 
> within HDFS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to