You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Qilin Cao (JIRA)" <ji...@apache.org> on 2019/08/08 11:12:00 UTC

[jira] [Updated] (PHOENIX-5433) Upgrade phoenix from 4.4.0 to 4.14.0 occur SYSTEM.STATS TableNotFoundException

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

Qilin Cao updated PHOENIX-5433:
-------------------------------
    Description: 
When upgrade from phoenix 4.4.0 to phoenix 4.14.0, it occur TableNotFoundException. This is because there is a step to drop table SYSTEM.STATS when upgrade to 4.7.0,, then when upgrade to 4.14.0 the step "alter table SYSTEM.STATS ..."  can not be executed.
{code:java}
19/08/05 10:19:36 ERROR query.ConnectionQueryServicesImpl: Unable to determine tables requiring upgrade due to PHOENIX-2067
org.apache.phoenix.exception.UpgradeRequiredException: Operation not allowed since cluster hasn't been upgraded. Call EXECUTE UPGRADE.
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:298)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:289)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:288)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:281)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1757)
at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1399)
at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1390)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemCatalogIfRequired(ConnectionQueryServicesImpl.java:2817)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemTables(ConnectionQueryServicesImpl.java:3049)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2584)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2496)
at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2496)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
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:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
at sqlline.SqlLine.dispatch(SqlLine.java:809)
at sqlline.SqlLine.initArgs(SqlLine.java:588)
at sqlline.SqlLine.begin(SqlLine.java:661)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:291)
19/08/05 10:21:07 WARN query.ConnectionQueryServicesImpl: Starting restore of SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927 because upgrade failed
19/08/05 10:21:12 WARN query.ConnectionQueryServicesImpl: Successfully restored SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
19/08/05 10:21:15 WARN query.ConnectionQueryServicesImpl: Successfully restored and enabled SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
Error: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS (state=42M03,code=1012)
org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS
{code}

  was:
When upgrade from phoenix 4.4.0 to phoenix 4.14.0, it occur TableNotFoundException. This is because there is a step to drop table SYSTEM.STATS when upgrade to 4.7.0,, but when upgrade to 4.14.0 the step alter table SYSTEM.STATS can not found the table, so it execute failed.
{code:java}
19/08/05 10:19:36 ERROR query.ConnectionQueryServicesImpl: Unable to determine tables requiring upgrade due to PHOENIX-2067
org.apache.phoenix.exception.UpgradeRequiredException: Operation not allowed since cluster hasn't been upgraded. Call EXECUTE UPGRADE.
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:298)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:289)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:288)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:281)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1757)
at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1399)
at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1390)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemCatalogIfRequired(ConnectionQueryServicesImpl.java:2817)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemTables(ConnectionQueryServicesImpl.java:3049)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2584)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2496)
at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2496)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
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:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
at sqlline.SqlLine.dispatch(SqlLine.java:809)
at sqlline.SqlLine.initArgs(SqlLine.java:588)
at sqlline.SqlLine.begin(SqlLine.java:661)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:291)
19/08/05 10:21:07 WARN query.ConnectionQueryServicesImpl: Starting restore of SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927 because upgrade failed
19/08/05 10:21:12 WARN query.ConnectionQueryServicesImpl: Successfully restored SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
19/08/05 10:21:15 WARN query.ConnectionQueryServicesImpl: Successfully restored and enabled SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
Error: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS (state=42M03,code=1012)
org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS
{code}


> Upgrade phoenix from 4.4.0 to 4.14.0 occur SYSTEM.STATS TableNotFoundException
> ------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5433
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5433
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Qilin Cao
>            Priority: Major
>         Attachments: PHOENIX-5433-master.patch
>
>
> When upgrade from phoenix 4.4.0 to phoenix 4.14.0, it occur TableNotFoundException. This is because there is a step to drop table SYSTEM.STATS when upgrade to 4.7.0,, then when upgrade to 4.14.0 the step "alter table SYSTEM.STATS ..."  can not be executed.
> {code:java}
> 19/08/05 10:19:36 ERROR query.ConnectionQueryServicesImpl: Unable to determine tables requiring upgrade due to PHOENIX-2067
> org.apache.phoenix.exception.UpgradeRequiredException: Operation not allowed since cluster hasn't been upgraded. Call EXECUTE UPGRADE.
> at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:298)
> at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:289)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:288)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:281)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1757)
> at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1399)
> at org.apache.phoenix.util.UpgradeUtil.getPhysicalTablesWithDescRowKey(UpgradeUtil.java:1390)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemCatalogIfRequired(ConnectionQueryServicesImpl.java:2817)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl.upgradeSystemTables(ConnectionQueryServicesImpl.java:3049)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2584)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2496)
> at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2496)
> at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
> at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
> at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
> 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:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
> at sqlline.SqlLine.dispatch(SqlLine.java:809)
> at sqlline.SqlLine.initArgs(SqlLine.java:588)
> at sqlline.SqlLine.begin(SqlLine.java:661)
> at sqlline.SqlLine.start(SqlLine.java:398)
> at sqlline.SqlLine.main(SqlLine.java:291)
> 19/08/05 10:21:07 WARN query.ConnectionQueryServicesImpl: Starting restore of SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927 because upgrade failed
> 19/08/05 10:21:12 WARN query.ConnectionQueryServicesImpl: Successfully restored SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
> 19/08/05 10:21:15 WARN query.ConnectionQueryServicesImpl: Successfully restored and enabled SYSTEM.CATALOG using snapshot SNAPSHOT_SYSTEM.CATALOG_4.3.x_TO_4.14.0_20190805101927
> Error: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS (state=42M03,code=1012)
> org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.STATS
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)