[ 
https://issues.apache.org/jira/browse/HIVE-10384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chaoyu Tang updated HIVE-10384:
-------------------------------
    Attachment: HIVE-10384.patch

Looking through RetryMetaStoreClient/IMetaStoreClient/MetaStoreClient, I think 
two exceptions wrapped in MetaException should be caught and retry is needed in 
RetryMetaStoreClient.invoke. One is IOException from reloginExpiringKeytabUser, 
other other is TTransportException from base.reconnect(). I did not see that an 
TTransportException could be wrapped in the InvocationTargetException.
[~ekhliang] I wonder if it is the TTransportException that you meant which 
should be but has not been retried, or is there any other. Thanks

> RetryingMetaStoreClient does not retry wrapped TTransportExceptions
> -------------------------------------------------------------------
>
>                 Key: HIVE-10384
>                 URL: https://issues.apache.org/jira/browse/HIVE-10384
>             Project: Hive
>          Issue Type: Bug
>          Components: Clients
>            Reporter: Eric Liang
>            Assignee: Chaoyu Tang
>         Attachments: HIVE-10384.patch
>
>
> This bug is very similar to HIVE-9436, in that a TTransportException wrapped 
> in a MetaException will not be retried. RetryingMetaStoreClient has a block 
> of code above the MetaException handler that retries thrift exceptions, but 
> this doesn't work when the exception is wrapped.
> {code}
>         if ((e.getCause() instanceof TApplicationException) ||
>             (e.getCause() instanceof TProtocolException) ||
>             (e.getCause() instanceof TTransportException)) {
>           caughtException = (TException) e.getCause();
>         } else if ((e.getCause() instanceof MetaException) &&
>             
> e.getCause().getMessage().matches("(?s).*JDO[a-zA-Z]*Exception.*")) {
>           caughtException = (MetaException) e.getCause();
> {code}



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

Reply via email to