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

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

In the past when I've gotten ConnectionLoss exceptions or KeeperExceptions when 
using the mini cluster (within Phoenix and elsewhere), it's been because I set 
a breakpoint and then kept the code stopped long enough for ZooKeeper session 
to expire; it doesn't seem able to recover from that. If there's a known 
workaround to that I'd love to learn it, because it's really annoying. 

When the test fails without ZK failures (when I run without a debugger or just 
set my breakpoints very carefully) I get this:
2015-07-01 13:45:07,401 ERROR [main] 
org.apache.phoenix.mapreduce.index.IndexTool(239):  An exception occured while 
performing the indexing job : java.lang.IllegalArgumentException:  
SCHEMA.DATA_TABLE3_INDX is not an index table for SCHEMA.DATA_TABLE3 

The CREATE table and CREATE index async local statements in the test are 
returning without exception, but a little later on when the IndexTool calls 
DatabaseMetaData.getIndexInfo, it returns an empty result set even though the 
schema and table names look correct. The IndexTool doesn't start since its 
pre-run validation check fails, but the minicluster seems to be up because the 
Phoenix connection is usable. 

> 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