[ 
https://issues.apache.org/jira/browse/PHOENIX-3174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15504928#comment-15504928
 ] 

Samarth Jain commented on PHOENIX-3174:
---------------------------------------

The property is being set in getConnectionOnServer only. 

{code}
/**
     * @return {@link PhoenixConnection} with {@value 
UpgradeUtil#DO_NOT_UPGRADE} set so that we don't initiate metadata upgrade.
     */
    public static Connection getConnectionOnServer(Properties props, 
Configuration conf)
            throws ClassNotFoundException,
            SQLException {
        UpgradeUtil.doNotUpgradeOnFirstConnection(props);
        return getConnection(props, conf);
    }

    public static Connection getConnection(Configuration conf) throws 
ClassNotFoundException,
            SQLException {
        return getConnection(new Properties(), conf);
    }
{code}

I didn't realize that there was a copy constructor that I could use to copy 
over the isRunningUpgrade state of the phoenix connection. So in the current 
patch, I had I had it as this:
{code}
try (PhoenixConnection tenantConn = 
DriverManager.getConnection(connection.getURL(), 
props).unwrap(PhoenixConnection.class)) {
                                    
tenantConn.setRunningUpgrade(connection.isRunningUpgrade());
                                
{code}

I will switch it over to this instead:
{code}
try (PhoenixConnection tenantConn = new PhoenixConnection(connection, 
connection.getQueryServices(), props))
{code}


> 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
>             Fix For: 4.9.0
>
>         Attachments: PHOENIX-3174.patch, PHOENIX-3174_v2.patch, 
> PHOENIX-3174_v3_master.patch, PHOENIX-3174_v4_master.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)

Reply via email to