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