[ https://issues.apache.org/jira/browse/PHOENIX-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chinmay Kulkarni updated PHOENIX-5920: -------------------------------------- Fix Version/s: 4.16.0 5.1.0 > Skip SYSTEM TABLE checks while creating phoenix connection if client has set > the DoNotUpgrade config > ---------------------------------------------------------------------------------------------------- > > Key: PHOENIX-5920 > URL: https://issues.apache.org/jira/browse/PHOENIX-5920 > Project: Phoenix > Issue Type: Bug > Affects Versions: 5.0.0, 4.15.0, 4.14.3 > Reporter: Neha Gupta > Assignee: Neha Gupta > Priority: Major > Fix For: 5.1.0, 4.16.0 > > Attachments: PHOENIX-5920.patch, PHOENIX-5920.v1.patch > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Phoenix checks upgrade path even if client has set "DoNotUpgrade" config. > When HMaster failover happens and Phoenix client creating phoenix connection, > we get exception "org.apache.hadoop.hbase.PleaseHoldException: Master is > initializing" because phoenix calls HBase admin apis to check if SYSTEM > tables are in place and does not require an upgrade. > [CQSI.init()|https://github.com/apache/phoenix/blob/aad583670ea821286ab5e2460ce0ab7255d474c4/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3169] > initiates creating systems table and > [CQSI.ensureTableCreated|https://github.com/apache/phoenix/blob/aad583670ea821286ab5e2460ce0ab7255d474c4/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1246] > is checking if SYTEM table requires upgrade and calls hbaseAdminApis to > perform this operation which fails if HMaster is not running. Can we honor > the "DoNotUpgrade" config by client(By making an assumption that SYSTEM table > is already up-to-date and phoenix client shouldn't perform any upgrades) and > skip this upgrade checks ? > EnsureTableCreated performs bunch of client-server compatibility checks like: > 1.SYSTEM.CATALOG exists and its timestamp < MIN_SYSTEM_TABLE_TIMESTAMP > 2.SYSTEM.CATALOG exists, but client and server-side namespace mapping is > enabled so we need to migrate SYSTEM tables to the SYSTEM namespace > 3.When an end-user uses the vanilla PhoenixDriver to create a connection and > a requirement for upgrade is detected. In this case, the user should get a > connection on which they are only able to run "EXECUTE UPGRADE". -- This message was sent by Atlassian Jira (v8.3.4#803005)