[
https://issues.apache.org/jira/browse/PHOENIX-4684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chinmay Kulkarni updated PHOENIX-4684:
--------------------------------------
Labels: phoenix-hardening (was: )
> Creation of SYSTEM tables should not depend on client-side properties
> ---------------------------------------------------------------------
>
> Key: PHOENIX-4684
> URL: https://issues.apache.org/jira/browse/PHOENIX-4684
> Project: Phoenix
> Issue Type: Bug
> Reporter: Chinmay Kulkarni
> Priority: Major
> Labels: phoenix-hardening
>
> Currently, when the server receives its first connection, SYSTEM.CATALOG or
> SYSTEM:CATALOG (and other system tables) are created depending on whether
> namespace mapping is enabled or not on the connecting client. This can lead
> to potential bugs and unexpected behavior. For example:
> Let's say *namespace mapping is disabled on the server*, but the first
> connection the server gets is from a *client where namespace mapping is
> enabled*. In this case, we will create the HBase physical table
> SYSTEM:CATALOG and then this client fails with an _SQLException_ for
> "Inconsistent namespace mapping properties".
> Now, when a client that has consistent namespace mapping properties with this
> server i.e. ns-mapping disabled, tries to connect to this server, that client
> will get the same exception from the CQSI._init_ method since SYSTEM:CATALOG
> exists already. This client will thus never be able to get a connection to
> the server even though it is potentially compatible with the server.
> Thus, system table creation should be purely driven by server-side properties
> and not be dependent on the properties of the first client that connects to
> the server.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)