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

Chia-Ping Tsai commented on HBASE-20686:
----------------------------------------

{code:java}
+        IOException e = re.unwrapRemoteException(
+            AccessControlException.class,
+            DSQuotaExceededException.class,
+            QuotaByStorageTypeExceededException.class,
+            FileAlreadyExistsException.class,
+            FileNotFoundException.class,
+            ParentNotDirectoryException.class,
+            NSQuotaExceededException.class,
+            RetryStartFileException.class,
+            SafeModeException.class,
+            UnresolvedPathException.class,
+            SnapshotAccessControlException.class,
+            UnknownCryptoProtocolVersionException.class);
+        if (e instanceof RetryStartFileException) {
{code}
Why we try to look up other exception types if the exception we want to handle 
is only the RetryStartFileException?

> Asyncfs should retry upon RetryStartFileException
> -------------------------------------------------
>
>                 Key: HBASE-20686
>                 URL: https://issues.apache.org/jira/browse/HBASE-20686
>             Project: HBase
>          Issue Type: Bug
>          Components: asyncclient
>    Affects Versions: 2.0.0-beta-1
>         Environment: HBase 2.0, Hadoop 3 with at-rest encryption
>            Reporter: Wei-Chiu Chuang
>            Assignee: Wei-Chiu Chuang
>            Priority: Major
>         Attachments: HBASE-20686.master.001.patch
>
>
> In Hadoop-2.6 and above, HDFS client retries on RetryStartFileException when 
> NameNode experience encryption zone related issue. The code exists in 
> DFSOutputStream#newStreamForCreate(). (HDFS-6970)
> In HBase-2's asyncfs implementation, 
> FanOutOneBlockAsyncDFSOutputHelper#createOutput() is somewhat an imitation of 
> HDFS's DFSOutputStream#newStreamForCreate(). However it does not retry upon 
> RetryStartFileException. So it is less resilient to such issues.
> Also, DFSOutputStream#newStreamForCreate() upwraps RemoteExceptions, but 
> asyncfs does not. Therefore, hbase gets different exceptions than before.
> File this jira to get this corrected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to