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

Samarth Jain commented on PHOENIX-2572:
---------------------------------------

Mujtaba has isolated this to the following series of executions:

On clean HBase - 4.5.0 client/ 4.5.0 server 
create table t (pk1 varchar not null primary key, kv1 varchar);

Upgrade server with the 4.7-SNAPSHOT jar and then with 4.5 client execute:
alter table t add kv2 varchar, kv3 varchar;
alter table t drop column kv2, kv3;

Now connect with 4.7-SNAPSHOT client:
org.apache.phoenix.schema.NewerTableAlreadyExistsException: ERROR 1013 (42M04): 
Table already exists. tableName=SYSTEM.CATALOG
        at 
org.apache.phoenix.schema.MetaDataClient.processMutationResult(MetaDataClient.java:2495)
        at 
org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2832)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:974)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:335)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:323)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:321)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1274)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:2258)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl.access$600(ConnectionQueryServicesImpl.java:209)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2417)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2290)
        at 
org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2290)
        at 
org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:230)
        at 
org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:135)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:201)
        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
        at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
        at sqlline.Commands.connect(Commands.java:1064)
        at sqlline.Commands.connect(Commands.java:996)
        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:804)
        at sqlline.SqlLine.initArgs(SqlLine.java:588)
        at sqlline.SqlLine.begin(SqlLine.java:656)
        at sqlline.SqlLine.start(SqlLine.java:398)

Thanks, [~mujtabachohan]!

So far, I have narrowed it down that the issue started arising with this 
changelist on 4.x-HBase-0.98 - PHOENIX-1674 Snapshot isolation transaction 
support through Tephra.

Will keep digging.



> Backward compatibility fails between v4.5.0 and 4.7 snapshot
> ------------------------------------------------------------
>
>                 Key: PHOENIX-2572
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2572
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.7.0
>            Reporter: Mujtaba Chohan
>            Assignee: Samarth Jain
>             Fix For: 4.7.0
>
>         Attachments: PHOENIX-2572_v2.patch
>
>
> Server is upgraded to Phoenix 4.7 snapshot while client remains on 4.5.0. 
> After this client is also upgraded to 4.7, on connection:
> {code}
> org.apache.phoenix.schema.NewerTableAlreadyExistsException: ERROR 1013 
> (42M04): Table already exists. tableName=SYSTEM.CATALOG
> >     at 
> > org.apache.phoenix.schema.MetaDataClient.processMutationResult(MetaDataClient.java:2496)
> >     at 
> > org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2834)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:974)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:335)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:323)
> >     at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:321)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1274)
> >     at 
> > org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:2258)
> >     at 
> > org.apache.phoenix.query.ConnectionQueryServicesImpl.access$600(ConnectionQueryServicesImpl.java:209)
> >     at 
> > org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2428)
> >     at 
> > org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2301)
> >     at 
> > org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
> >     at 
> > org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2301)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:218)
> >     at 
> > org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:131)
> {code}



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

Reply via email to