[
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)