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

Work on HIVE-20173 started by Aaron Gottlieb.
---------------------------------------------
> MetaStoreDirectSql#executeWithArray should not catch RuntimeExceptions from 
> JDO
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-20173
>                 URL: https://issues.apache.org/jira/browse/HIVE-20173
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 1.1.0
>            Reporter: Aaron Gottlieb
>            Assignee: Aaron Gottlieb
>            Priority: Major
>         Attachments: HIVE-20173.patch
>
>
> When attempting to test the existence of a Hive database, the Metastore will 
> query the backing database.
> The method MetaStoreDirectSql#executeWithArray catches all exceptions, 
> turning them into MetaExceptions.
> Further up the stack, the ObjectStore#getDatabase explicitly catches 
> MetaExceptions and turns them into NoSuchObjectExceptions.
> Finally, RetryingHMSHandler explicitly looks for NoSuchObjectExceptions and 
> does _not_ retry them, thinking they are legitimate answers.
> If the exception in MetaStoreDirectSql#executeWithArray was a runtime 
> JDOException due to, say, some sort of network error between the Metastore 
> and the backing database, this inability to query the backing database looks 
> just like an answer of "no database exists" higher up the stack.  Any program 
> depending on this information will continue with an incorrect answer rather 
> than retrying the original getDatabase query.
> I am unsure the extent of the effects of this, but I imagine that explicitly 
> _not_ catching RuntimeExceptions in MetaStoreDirectSql#executeWithArray will 
> allow the exception to raise all the way up to the RetryingHMSHandler which 
> will, correctly, retry the operation.
> Would allowing RuntimeExceptions to be thrown from 
> MetaStoreDirectSql#executeWithArray be too deleterious?  Or did I miss some 
> code path such that my observations are incorrect?
>  
> Thanks,
> Aaron



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

Reply via email to