[
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)