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

Sanjeet Malhotra updated PHOENIX-7788:
--------------------------------------
    Priority: Minor  (was: Major)

> CREATE TABLE fails with TableNotEnabledException when underlying HBase table 
> exists but is disabled
> ---------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-7788
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7788
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.2.1, 5.3.0
>            Reporter: Sanjeet Malhotra
>            Priority: Minor
>
> When an HBase table exists and is disabled but has no corresponding Phoenix 
> metadata in SYSTEM.CATALOG, executing CREATE TABLE IF NOT EXISTS fails with 
> TableNotEnabledException.
> This can happen if Phoenix metadata was lost or manually removed while the 
> HBase table remained in a disabled state.The issue is that 
> ensureTableCreated() in ConnectionQueryServicesImpl successfully detects and 
> modifies the existing disabled HBase table, but never re-enables it. The 
> SYSTEM.CATALOG metadata is written successfully, but the subsequent post-DDL 
> scan fails because the table is still disabled.
> This also leaves the system in an inconsistent state: metadata exists in 
> SYSTEM.CATALOG but the underlying HBase table remains disabled.
> Fix: ensureTableCreated() should detect when an existing HBase table is 
> disabled and enable it before proceeding.
>  
> How to Reproduce:
>  # Create a Phoenix table normally
>  # Delete its metadata from SYSTEM.CATALOG (DELETE FROM SYSTEM.CATALOG WHERE 
> TABLE_NAME = '...')
>  # Disable the HBase table via admin.disableTable()
>  # Execute CREATE TABLE IF NOT EXISTS with the same DDL
>  # Observe TableNotEnabledException
>  
> We saw this in production when drop table succeeded to disable HBase table 
> but failed to delete it, leaving HBase table in disabled state.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to