phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geoffrey Jacoby (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-2025) Phoenix-core's hbase-default.xml prevents HBaseTestingUtility from starting up in client apps
Date Thu, 04 Jun 2015 23:36:38 GMT


Geoffrey Jacoby commented on PHOENIX-2025:

After talking with [~samarthjain] yesterday I realized that my earlier tests of removing hbase-default.xml
and/or changing it to hbase-site.xml were flawed because I was running JDK 8. I reran the
Phoenix test suites today on a different machine running JDK 7 with the test hbase-default.xml
renamed to hbase-site.xml, and it looks much better. All integration tests in 4.3 pass, though
two unit tests fail. One of those tests, WhereCompilerTest.testScanCache_Default fails for
a good reason -- it assumes the scanner cache default to be a Phoenix constant, rather than
whatever's in the real hbase-default.xml. 

The other, ConnectionlessTest.testNoConnectionInfo, seems to spin infinitely trying to get
a non-existent ZK quorum even though it's a negative test that just verifies that the JDBC
driver throws an appropriate exception if given a bad connection string. I'm not sure what's
going on there, why it breaks in the presence of the "real" hbase-common hbase-default.xml,
or why the JDBC driver's even trying to talk to ZK rather than immediately noticing the connection
string's bad.

I'm attaching a patch which includes the hbase XML rename, a fix for the testScanCache_Default,
and an Ignore for the testNoConnectionInfo for use in further investigation by the community.

> Phoenix-core's hbase-default.xml prevents HBaseTestingUtility from starting up in client
> ---------------------------------------------------------------------------------------------
>                 Key: PHOENIX-2025
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.3.0
>            Reporter: Geoffrey Jacoby
> Phoenix seems to have long had its own version of hbase-default.xml as a test resource
in phoenix-core with a single setting to override hbase.defaults.for.version.skip to true.
Sometime around Phoenix 4.3, phoenix-core seems to have been split into a main jar and a test
jar, and the hbase-default.xml went into the test jar.
> The odd result of this is that in client apps that include the test jar, the classloader
in HBaseConfiguration.create() now sees Phoenix's hbase-default.xml, rather than HBase's,
and creates a Configuration object without HBase's defaults. One major consequence of this
is that the HBaseTestingUtility can't start up, because it relies on those HBase defaults
being set. This is a huge problem in a client app that includes the phoenix-core test jar
in order to make use of the PhoenixTestDriver and BaseTest classes; the upgrade to 4.3 breaks
all tests using the HBaseTestingUtility. 

This message was sent by Atlassian JIRA

View raw message