[
https://issues.apache.org/jira/browse/HBASE-7295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526145#comment-13526145
]
Ted Yu commented on HBASE-7295:
-------------------------------
There were so many TestHBaseFsck failures on Jenkins. I was able to reproduce
the following:
testFixAssignmentsAndNoHdfsChecking(org.apache.hadoop.hbase.util.TestHBaseFsck):
expected:<[NOT_DEPLOYED, HOLE_IN_REGION_CHAIN]> but was:<[MULTI_DEPLOYED,
NOT_DEPLOYED, MULTI_DEPLOYED, NOT_DEPLOYED, HOLE_IN_REGION_CHAIN]>
However, I saw the following in test output.
{code}
2012-12-06 20:51:32,370 WARN [PRI IPC Server handler 0 on 57913]
hdfs.DFSClient$DFSInputStream(2232): Short circuit access failed
org.apache.hadoop.security.AccessControlException:
org.apache.hadoop.security.AccessControlException: Can't continue with
getBlockLocalPathInfo() authorization. The user zhihyu.hfs.0 is not allowed to
call getBlockLocalPathInfo
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
at
org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:57)
at org.apache.hadoop.hdfs.DFSClient.getLocalBlockReader(DFSClient.java:513)
at org.apache.hadoop.hdfs.DFSClient.access$800(DFSClient.java:78)
at
org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2228)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2381)
at java.io.DataInputStream.readFully(DataInputStream.java:178)
at java.io.DataInputStream.readFully(DataInputStream.java:152)
at
org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorModtime(FSTableDescriptors.java:429)
at
org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorModtime(FSTableDescriptors.java:414)
at
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:169)
at
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:132)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.openRegion(HRegionServer.java:3403)
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.hadoop.hbase.ipc.ProtobufRpcEngine$Server.call(ProtobufRpcEngine.java:356)
at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1816)
Caused by: org.apache.hadoop.ipc.RemoteException:
org.apache.hadoop.security.AccessControlException: Can't continue with
getBlockLocalPathInfo() authorization. The user zhihyu.hfs.0 is not allowed to
call getBlockLocalPathInfo
at
org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockLocalPathAccess(DataNode.java:1849)
at
org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1859)
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.hadoop.ipc.RPC$Server.call(RPC.java:578)
{code}
Not sure if the above is related to test failure.
> Contention in HBaseClient.getConnection
> ---------------------------------------
>
> Key: HBASE-7295
> URL: https://issues.apache.org/jira/browse/HBASE-7295
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 0.94.3
> Reporter: Varun Sharma
> Assignee: Varun Sharma
> Fix For: 0.94.3
>
> Attachments: 7295-0.94.txt, 7295-0.94-v2.txt, 7295-trunk.txt
>
>
> HBaseClient.getConnection() synchronizes on the connections object. We found
> severe contention on a thrift gateway which was fanning out roughly 3000+
> calls per second to hbase region servers. The thrift gateway had 2000+
> threads for handling incoming connections. Threads were blocked on the
> syncrhonized block - we set ipc.pool.size to 200. Since we are using
> RoundRobin/ThreadLocal pool only - its not necessary to synchronize on
> connections - it might lead to cases where we might go slightly over the
> ipc.max.pool.size() but the additional connections would timeout after
> maxIdleTime - underlying PoolMap connections object is thread safe.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira