Mujtaba Chohan created PHOENIX-3231:
---------------------------------------
Summary: SYSTEM.CATALOG get restored from snapshot with
multi-client connection
Key: PHOENIX-3231
URL: https://issues.apache.org/jira/browse/PHOENIX-3231
Project: Phoenix
Issue Type: Bug
Reporter: Mujtaba Chohan
Fix For: 4.8.1
If two separate Phoenix connections try to upgrade Phoenix from v4.7 to 4.8.1
then second connection fails with the following exception. This happens even if
second connection is couple of seconds apart but within upgrade window. This is
likely to happen in situation where pool of client machines all get upgraded to
latest Phoenix version. After this exception, all clients will cease to work
with undefined column exception due to restore/aborted upgrade.
{noformat}
WARN query.ConnectionQueryServicesImpl: Table already modified at this
timestamp, so assuming add of these columns already done: IS_NAMESPACE_MAPPED
BOOLEAN
WARN query.ConnectionQueryServicesImpl: Table already modified at this
timestamp, so assuming add of these columns already done: AUTO_PARTITION_SEQ
VARCHAR
WARN query.ConnectionQueryServicesImpl: Table already modified at this
timestamp, so assuming add of these columns already done: APPEND_ONLY_SCHEMA
BOOLEAN
WARN query.ConnectionQueryServicesImpl: Starting restore of SYSTEM.CATALOG
using snapshot SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.8.0_20160831114048-0700
because upgrade failed
16/08/31 11:41:05 WARN query.ConnectionQueryServicesImpl: Successfully restored
SYSTEM.CATALOG using snapshot
SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.8.0_20160831114048-0700
16/08/31 11:41:09 WARN query.ConnectionQueryServicesImpl: Successfully restored
and enabled SYSTEM.CATALOG using snapshot
SNAPSHOT_SYSTEM.CATALOG_4.7.x_TO_4.8.0_20160831114048-0700
Error: ERROR 504 (42703): Undefined column. columnName=IS_NAMESPACE_MAPPED
(state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined
column. columnName=IS_NAMESPACE_MAPPED
at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:693)
at
org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:449)
at
org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:418)
at
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:590)
at
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:578)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:333)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:328)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:326)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:247)
at
org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:172)
at
org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:177)
at
org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:2275)
at
org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:920)
at
org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:193)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:340)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:328)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:326)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1369)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2486)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2282)
at
org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2282)
at
org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:231)
at
org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:144)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)