You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Samarth Jain (JIRA)" <ji...@apache.org> on 2016/09/10 06:30:23 UTC

[jira] [Updated] (PHOENIX-3174) Make minor upgrade a manual step

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

Samarth Jain updated PHOENIX-3174:
----------------------------------
    Attachment: PHOENIX-3174.patch

Patch that provides the capability to prevent auto-upgrade from running whenever a new client connects to the cluster. Auto upgrade can be disabled in two ways:
1) On phoenix connection set NoUpgrade property to true.
2) In client side hbase-site.xml set phoenix.autoupgrade.disable to true (false by default).

When a new client tries to connect with any of the two properties and the upgrade hasn't been done yet, then he/she is thrown the following error:

{code}
Error: Connection not allowed! Cluster first needs to be upgraded from 4.7.x to 4.8.x. Please reconnect with a connection that doesn't have PhoenixRuntime.NO_UPGRADE_ATTRIB property set. Alternatively, you can set phoenix.autoupgrade.disabled to false as a global property for phoenix connections in the client side hbase-site.xml. (state=INT13,code=2011)
org.apache.phoenix.query.ConnectionQueryServicesImpl$UpgradeRequiredException: Connection not allowed! Cluster first needs to be upgraded from 4.7.x to 4.8.x. Please reconnect with a connection that doesn't have PhoenixRuntime.NO_UPGRADE_ATTRIB property set. Alternatively, you can set phoenix.autoupgrade.disabled to false as a global property for phoenix connections in the client side hbase-site.xml.
	at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2468)
	at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2267)
	at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
	at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2267)
	at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:232)
	at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:147)
	at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202)
	at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
	at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
	at sqlline.Commands.close(Commands.java:906)
	at sqlline.Commands.quit(Commands.java:870)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
		at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
	at sqlline.SqlLine.dispatch(SqlLine.java:803)
	at sqlline.SqlLine.begin(SqlLine.java:681)
	at sqlline.SqlLine.start(SqlLine.java:398)
	at sqlline.SqlLine.main(SqlLine.java:292)
{code}

The patch also introduces a new phoenix connection property - UpgradeUtil.NO_AUTO_UPGRADE_ATTRIB_INTERNAL that should be used by internal phoenix code when no upgrade connections are needed.

[~jamestaylor], please review.

> Make minor upgrade a manual step
> --------------------------------
>
>                 Key: PHOENIX-3174
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3174
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Samarth Jain
>         Attachments: PHOENIX-3174.patch
>
>
> Instead of automatically performing minor release upgrades to system tables in an automated manner (on first connection), we should make upgrade a separate manual step. If a newer client attempts to connect to a newer server without the upgrade step having occurred, we'd fail the connection.
> Though not as automated, this would give users more control and visibility into when an upgrade over system tables occurs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)