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

stack commented on HBASE-4054:
------------------------------

umm... it completed finally but testReturnDifferentTable failed with this:

{code}
-------------------------------------------------------------------------------
Test set: org.apache.hadoop.hbase.client.TestHTablePool
-------------------------------------------------------------------------------
Tests run: 18, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 457.077 sec 
<<< FAILURE!
testReturnDifferentTable(org.apache.hadoop.hbase.client.TestHTablePool$TestHTableReusablePool)
  Time elapsed: 93.551 sec  <<< ERROR!
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up 
proxy interface org.apache.hadoop.hbase.ipc.HRegionInterface to 
/192.168.1.8:60222 after attempts=1
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:234)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1164)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1126)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1113)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:845)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:741)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:715)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:950)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:745)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:709)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:189)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:145)
        at 
org.apache.hadoop.hbase.client.TestHTablePool$TestHTablePoolType$1.<init>(TestHTablePool.java:165)
        at 
org.apache.hadoop.hbase.client.TestHTablePool$TestHTablePoolType.testReturnDifferentTable(TestHTablePool.java:165)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:243)
        at junit.framework.TestSuite.run(TestSuite.java:238)
        at junit.framework.TestSuite.runTest(TestSuite.java:243)
        at junit.framework.TestSuite.run(TestSuite.java:238)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:165)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:107)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
        at 
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:404)
        at 
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:343)
        at 
org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:976)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:828)
        at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:141)
        at $Proxy10.getProtocolVersion(Unknown Source)
        at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:174)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:295)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:272)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:324)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:228)
{code}

> Usability improvement to HTablePool
> -----------------------------------
>
>                 Key: HBASE-4054
>                 URL: https://issues.apache.org/jira/browse/HBASE-4054
>             Project: HBase
>          Issue Type: Improvement
>          Components: client
>    Affects Versions: 0.90.3
>            Reporter: Daniel Iancu
>            Priority: Minor
>         Attachments: 4054.addendum, 
> HBASE-4054_Usability_improvement_to_HTablePool-trunk.patch, 
> HBASE-4054_Usability_improvement_to_HTablePool.patch, 
> TestHTablePool-trunk.patch
>
>
> To improve the usability of the HTablePool the implementation should not rely 
> on the user returning the connection to the pool but rather do that 
> transparently when user closes the HTableImplementation it got.
>  
> To do that a HTableImplementation proxy implementation should be returned 
> that wraps a HTable object and holds a reference to the pool. When the client 
> close the proxy it will actually automatically return the wrapped HTable back 
> in pool to be reused. In this case the method HTablePool.putTable don't need 
> to be public

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to