[ https://issues.apache.org/jira/browse/PHOENIX-5008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas D'Silva closed PHOENIX-5008. ----------------------------------- Bulk closing jiras for the 4.14.2 relase. > 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)