hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16773) AccessController should access local region if possible
Date Mon, 10 Oct 2016 22:05:20 GMT

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

Andrew Purtell commented on HBASE-16773:
----------------------------------------

> It should be fine to restrict this, given that even meta is single region, although meta
is much bigger. 

As long as meta is not splittable doing this for the sake of expediency elsewhere is not without
precedent but it does compound the original sin. 

We should allow meta to split.

We should have an answer for this class of problem.

Getting back to expedient solutions, I have to concede that it's unlikely we will reach a
scalability limit by preventing the ACL table from splitting given how we cache its complete
contents in each RS. That will be a problem first.

> AccessController should access local region if possible
> -------------------------------------------------------
>
>                 Key: HBASE-16773
>                 URL: https://issues.apache.org/jira/browse/HBASE-16773
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: 16773.branch-1.txt, 16773.v2.txt, 16773.v3.txt, 16773.v4.txt, 16773.v5.txt,
16773.v6.txt, 16773.v7.txt
>
>
> We observed the following in the stack trace of region server on a 1.1.2 cluster:
> {code}
> "PriorityRpcServer.handler=19,queue=1,port=60200" #225 daemon prio=5 os_prio=0 tid=0x00007fb562296000
nid=0x81c0 runnable [0x00007fb509a27000]
>    java.lang.Thread.State: RUNNABLE
>   at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
>   at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
>   at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
>   at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
>   - locked <0x00000003d4dfd770> (a sun.nio.ch.Util$2)
>   - locked <0x00000003d4dfd760> (a java.util.Collections$UnmodifiableSet)
>   - locked <0x00000003d4dfd648> (a sun.nio.ch.EPollSelectorImpl)
>   at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
>   at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:335)
>   at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
>   at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
>   at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
>   at java.io.FilterInputStream.read(FilterInputStream.java:133)
>   at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
>   at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
>   - locked <0x00000003d7dae180> (a java.io.BufferedInputStream)
>   at java.io.DataInputStream.readInt(DataInputStream.java:387)
>   at org.apache.hadoop.hbase.security.HBaseSaslRpcClient.readStatus(HBaseSaslRpcClient.java:151)
>   at org.apache.hadoop.hbase.security.HBaseSaslRpcClient.saslConnect(HBaseSaslRpcClient.java:189)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.setupSaslConnection(RpcClientImpl.java:611)
>   - locked <0x00000003d5c7edc0> (a org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.access$600(RpcClientImpl.java:156)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection$2.run(RpcClientImpl.java:737)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection$2.run(RpcClientImpl.java:734)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at javax.security.auth.Subject.doAs(Subject.java:422)
>   at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.setupIOstreams(RpcClientImpl.java:734)
>   - locked <0x00000003d5c7edc0> (a org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.writeRequest(RpcClientImpl.java:887)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.tracedWriteRequest(RpcClientImpl.java:856)
>   at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1199)
>   at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213)
>   at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287)
>   at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.get(ClientProtos.java:32627)
>   at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:854)
>   at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:845)
>   at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
>   at org.apache.hadoop.hbase.client.HTable.get(HTable.java:862)
>   at org.apache.hadoop.hbase.client.HTable.get(HTable.java:828)
>   at org.apache.hadoop.hbase.security.access.AccessControlLists.getPermissions(AccessControlLists.java:461)
>   at org.apache.hadoop.hbase.security.access.AccessController.updateACL(AccessController.java:260)
>   at org.apache.hadoop.hbase.security.access.AccessController.postPut(AccessController.java:1661)
>   at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$32.call(RegionCoprocessorHost.java:940)
>   at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionOperation.call(RegionCoprocessorHost.java:1673)
>   at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperation(RegionCoprocessorHost.java:1748)
>   at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperation(RegionCoprocessorHost.java:1705)
>   at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.postPut(RegionCoprocessorHost.java:936)
>   at org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutation(HRegion.java:3287)
>   at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2902)
>   at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2844)
> {code}
> There were 20 threads stuck in the retrieval of permissions.
> AccessController shouldn't use Connection if getPermissions() can be satisfied by accessing
local hbase:acl region.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message