[jira] [Updated] (HIVE-10384) RetryingMetaStoreClient does not retry wrapped TTransportExceptions
[ https://issues.apache.org/jira/browse/HIVE-10384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sushanth Sowmyan updated HIVE-10384: Fix Version/s: (was: 1.3.0) 1.2.0 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 Fix For: 1.2.0 Attachments: HIVE-10384.1.patch, 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)
[jira] [Updated] (HIVE-10384) RetryingMetaStoreClient does not retry wrapped TTransportExceptions
[ 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)
[jira] [Updated] (HIVE-10384) RetryingMetaStoreClient does not retry wrapped TTransportExceptions
[ 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.1.patch Thanks [~szehon] for reviewing the code and Eric Liang providing the case where the TTransportException is wrapped in MetaException which is further wrapped in InvocationTargetException. Updated the patch to include that case as well. 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.1.patch, 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)
[jira] [Updated] (HIVE-10384) RetryingMetaStoreClient does not retry wrapped TTransportExceptions
[ https://issues.apache.org/jira/browse/HIVE-10384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Liang updated HIVE-10384: -- Description: 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} was:This bug is very similar to HIVE-9436, in that a TTransportException wrapped in a MetaException will not be retried. 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 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)