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