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

David Mollitor updated HIVE-25144:
----------------------------------
    Description: 
I have recently seen an issue where a Hive {{CREATE TABLE}} method fails with 
{{AlreadyExistsException}} even though the table does absolutely not exist.

 

I believe the issue is that there is a timeout/transient error with HMS and the 
backend database.  If the client submits a {{create table}} request to HMS, and 
the request to the backend database fails, the request to the DB may be retried 
even though the HMS has lost state of the DB.  When the HMS Handler "retry" 
functionality kicks in, the second time the request is submitted, the table 
looks like it already exists.

 

If something goes wrong during a HMS CREATE operation, we do not know the state 
of the operation and therefore it should just fail.

 

It would certainly be more transparent to the end-user what is going on.  An 
{{AlreadyExistsException}}  is confusing.

  was:
I have recently seen an issue where a Hive {{CREATE TABLE}} method fails with 
{{AlreadyExistsException}} even though the table does absolutely not exist.

 

I believe the issue is there there is a timeout/transient error with HMS and 
the backend database.  So, the client submits the request to HMS, and the 
request does eventually succeed, but only after the connection to the client 
connects.  Therefore, when the HMS Client "retry" functionality kicks it, the 
second time around, the table looks like it already exists.

 

If something goes wrong during a HMS CREATE operation, we do not know the state 
of the operation and therefore it should just fail.

 

It would certainly be more transparent to the end-user what is going on.  An 
{{AlreadyExistsException}}  is confusing.


> Remove RetryingHMSHandler
> -------------------------
>
>                 Key: HIVE-25144
>                 URL: https://issues.apache.org/jira/browse/HIVE-25144
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> I have recently seen an issue where a Hive {{CREATE TABLE}} method fails with 
> {{AlreadyExistsException}} even though the table does absolutely not exist.
>  
> I believe the issue is that there is a timeout/transient error with HMS and 
> the backend database.  If the client submits a {{create table}} request to 
> HMS, and the request to the backend database fails, the request to the DB may 
> be retried even though the HMS has lost state of the DB.  When the HMS 
> Handler "retry" functionality kicks in, the second time the request is 
> submitted, the table looks like it already exists.
>  
> If something goes wrong during a HMS CREATE operation, we do not know the 
> state of the operation and therefore it should just fail.
>  
> It would certainly be more transparent to the end-user what is going on.  An 
> {{AlreadyExistsException}}  is confusing.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to