[
https://issues.apache.org/jira/browse/PHOENIX-5008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas D'Silva updated PHOENIX-5008:
------------------------------------
Fix Version/s: 4.14.2
> 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, 4.14.2
>
> Attachments: PHOENIX-5008-4.x-HBase-1.3_addendum.patch,
> 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)