You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (Created) (JIRA)" <ji...@apache.org> on 2011/11/04 21:59:51 UTC
[jira] [Created] (HBASE-4750) Make thrift2
ThriftHBaseServiceHandler more friendly to concurrent tests
Make thrift2 ThriftHBaseServiceHandler more friendly to concurrent tests
------------------------------------------------------------------------
Key: HBASE-4750
URL: https://issues.apache.org/jira/browse/HBASE-4750
Project: HBase
Issue Type: Task
Reporter: Ted Yu
Quite often we saw the following reported by HadoopQA:
{code}
testExists(org.apache.hadoop.hbase.thrift2.TestThriftHBaseServiceHandler) Time elapsed: 0.062 sec <<< ERROR!
java.lang.IllegalArgumentException: Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
at org.apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.java:81)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:753)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:733)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:866)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:765)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:733)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:866)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:769)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:733)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:202)
at org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:36)
at org.apache.hadoop.hbase.client.HTablePool.createHTable(HTablePool.java:268)
at org.apache.hadoop.hbase.client.HTablePool.findOrCreateTable(HTablePool.java:198)
at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:173)
at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:216)
at org.apache.hadoop.hbase.thrift2.ThriftHBaseServiceHandler.getTable(ThriftHBaseServiceHandler.java:64)
at org.apache.hadoop.hbase.thrift2.ThriftHBaseServiceHandler.exists(ThriftHBaseServiceHandler.java:115)
at org.apache.hadoop.hbase.thrift2.TestThriftHBaseServiceHandler.testExists(TestThriftHBaseServiceHandler.java:123)
{code}
Methods in ThriftHBaseServiceHandler don't accept Configuration parameter. This makes parallelizing tests harder.
Looking deeper, we can see that HTablePool methods such as getTable() and findOrCreateTable() don't accept Configuration parameter either.
So we have to pass Configuration object to HTablePool ctor.
This means we need to add ThriftHBaseServiceHandler ctor which takes Configuration parameter.
Instead of the following in TestThriftHBaseServiceHandler:
{code}
ThriftHBaseServiceHandler handler = new ThriftHBaseServiceHandler();
{code}
We should be using the new ThriftHBaseServiceHandler ctor and pass HBaseTestingUtility's Configuration so that HTablePool ctor can receive it.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira