[
https://issues.apache.org/jira/browse/PHOENIX-5008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16687902#comment-16687902
]
Hudson commented on PHOENIX-5008:
---------------------------------
FAILURE: Integrated in Jenkins build Phoenix-omid2 #150 (See
[https://builds.apache.org/job/Phoenix-omid2/150/])
PHOENIX-5008: CQSI.init should not bubble up RetriableUpgradeException
(tdsilva: rev b2230b4f4bd7e8c2e9fd83e3fceb07a307521c9e)
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
* (edit)
phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java
PHOENIX-5008 (Addendum): CQSI.init should not bubble up (tdsilva: rev
7b038fba542173a91a7b919651ff067e1acc4fdf)
* (edit)
phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java
> 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-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)