Flavio Pompermaier created PHOENIX-4523:
-------------------------------------------

             Summary: phoenix.schema.isNamespaceMappingEnabled problem
                 Key: PHOENIX-4523
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4523
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.13.1
            Reporter: Flavio Pompermaier


I'm using Phoenix 4.13 for CDH 5.11.2 parcel and enabling schemas made my code 
unusable.
I think that this is not a bug of the CDH release, but of all 4.13.x releases.
I have many parallel Phoenix connections and I always get the following 
exception:

Caused by: java.sql.SQLException: 
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.TableExistsException):
 SYSTEM:MUTEX
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2492)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2384)
        at 
org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
        at 
org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2384)
        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 java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:270)

This is caused by the fact that all the times the SYSTEM tables are recreated, 
and this cannot be done simultaneously.

Trying to debug the issue I found that in 
ConnectionQueryServicesImpl.createSysMutexTable() the call to 
getSystemTableNames() always return an empty array and the SYSTEM.MUTEX  table 
is always recreated.
This because getSystemTableNames() doesn't consider the case when system tables 
have namespace enabled. Right now that method tries to get all tables starting 
with *SYSTEM.**, while it should try to get the list of *SYSTEM:* tables..

I hope this could get fixed very soon,
Flavio



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to