phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eli Levine (JIRA)" <>
Subject [jira] [Created] (PHOENIX-1214) SYSTEM.CATALOG cannot be created when first connection to cluster is tenant-specific
Date Thu, 28 Aug 2014 01:25:58 GMT
Eli Levine created PHOENIX-1214:

             Summary: SYSTEM.CATALOG cannot be created when first connection to cluster is
                 Key: PHOENIX-1214
             Project: Phoenix
          Issue Type: Bug
            Reporter: Eli Levine

Reported by []:

The problem seems to be that it is impossible to create a tenant
specific connection if the same driver instance hasn't previously been
used to create a global connection.

To reproduce:
- connect to a running hbase with a non-tenant specific connection
(using sqlline or squirrel or whatever you want)
- create a multitenant table
- close the connection and make a new tenant specific connection from
within a new JVM (otherwise the driver instance is reused). When using
squirrel, this implies restarting the app

This fails with
Caused by: java.sql.SQLException: ERROR 1030 (42Y89): Cannot create
table for tenant-specific connection tableName=SYSTEM.CATALOG
at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(
at org.apache.phoenix.exception.SQLExceptionInfo.buildException(
at org.apache.phoenix.schema.MetaDataClient.createTableInternal(
at org.apache.phoenix.schema.MetaDataClient.createTable(
at org.apache.phoenix.compile.CreateTableCompiler$2.execute(
at org.apache.phoenix.jdbc.PhoenixStatement$
at org.apache.phoenix.jdbc.PhoenixStatement$
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(
at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(
at org.apache.phoenix.query.ConnectionQueryServicesImpl$
at org.apache.phoenix.query.ConnectionQueryServicesImpl$
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(
at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(
... 7 more

When reusing the driver instance, this works. I think it has to do
with the logic around the check for "initialized" in
ConnectionQueryServicesImpl but I didn't dig any further.


This message was sent by Atlassian JIRA

View raw message