[ 
https://issues.apache.org/jira/browse/PHOENIX-2025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14610938#comment-14610938
 ] 

Geoffrey Jacoby commented on PHOENIX-2025:
------------------------------------------

Renaming src/it/resources/hbase-site.xml to hbase-default.xml, which 
effectively backs out this change, does allow IndexToolIT to pass. The larger 
effect of doing that is the same as in the original problem description: 
downstream projects which need to import phoenix-core-tests wouldn't be able to 
use the HBaseTestingUtility because phoenix's stub hbase-default.xml will cover 
the real one in hbase-common (at least not without setting a bunch of config 
options manually).

If this change needs to be temporarily reverted because we're running up 
against a deadline, I've no objection, but the test failing means that there's 
something about one or more of HBase's default settings that breaks the test, 
which seems like the sort of thing that would be good to know about so it can 
be fixed. :-) 

Is the test doing something differently from the many other integration tests 
which I assume are passing? For example, I see that it doesn't inherit from 
BaseTest or any similar base integration test class, but is manually calling 
one of BaseTest's config setup methods as a static import. 

> Phoenix-core's hbase-default.xml prevents HBaseTestingUtility from starting 
> up in client apps
> ---------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2025
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2025
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.3.0
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>             Fix For: 5.0.0, 4.5.0, 4.4.1
>
>         Attachments: PHOENIX-2025.patch, PHOENIX-2025_v2.patch
>
>
> 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
(v6.3.4#6332)

Reply via email to