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

Chinmay Kulkarni reopened PHOENIX-5008:
---------------------------------------

> CQSI.init should not bubble up RetriableUpgradeException to client in case of 
> an UpgradeRequiredException
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5008
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5008
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Chinmay Kulkarni
>            Assignee: Chinmay Kulkarni
>            Priority: Major
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: PHOENIX-5008.patch
>
>
> Inside _ConnectionQueryServicesImpl_._init_, if we catch a 
> _RetriableUpgradeException_, we re-throw this exception. In its caller 
> methods for example, in _PhoenixDriver.getConnectionQueryServices_, this is 
> caught as a _SQLException_, and this fails the initialization of the 
> ConnectionQueryServices and removes the new CQS object from the cache. 
> In the case that the _RetriableUpgradeException_ is an instance of an 
> _UpgradeNotRequiredException_ or an _UpgradeInProgressException_, this can 
> only occur when we attempt to upgrade system tables, either wrongly or 
> concurrently when there is an ongoing attempt for the same. In this case, it 
> is fine to bubble the exception up to the end client and the client will 
> subsequently have to re-attempt to create a connection (calling CQS.init 
> again).
> However, if the _RetriableUpgradeException_ is an instance of an 
> _UpgradeRequiredException_,  the end-client will never be able to get a 
> connection and thus will never be able to manually run "EXECUTE UPGRADE". In 
> this case, instead of re-throwing the exception, we should log that the 
> client must manually run "EXECUTE UPGRADE" before being able to run any other 
> commands and let the CQS.init succeed. Thus, the client will get a connection 
> which has "upgradeRequired" set and this connection will fail for any query 
> except "EXECUTE UPGRADE".



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

Reply via email to