[ https://issues.apache.org/jira/browse/HBASE-13375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14484112#comment-14484112 ]
Mikhail Antonov commented on HBASE-13375: ----------------------------------------- Hm, what I found debugging TestHBaseFsck#testHBaseFsck. Test itself runs just fine. If I go into AnnotationReadingPriorityFunction#getPriority, and add there at first line: bq. if (true) return HConstants.ADMIN_QOS; things fail with exception: {code} 2015-04-07 14:35:49,843 WARN [Thread-313] client.ConnectionImplementation(1740): Checking master connection com.google.protobuf.ServiceException: org.apache.hadoop.hbase.ipc.CallTimeoutException: callId: 2 methodName: IsMasterRunning param {TODO: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos$IsMasterRunningRequest} at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:223) at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.isMasterRunning(MasterProtos.java:50206) at org.apache.hadoop.hbase.client.ConnectionImplementation$MasterServiceState.isMasterRunning(ConnectionImplementation.java:1028) at org.apache.hadoop.hbase.client.ConnectionImplementation.isKeepAliveMasterConnectedAndRunning(ConnectionImplementation.java:1733) at org.apache.hadoop.hbase.client.ConnectionImplementation.getKeepAliveMasterService(ConnectionImplementation.java:1385) at org.apache.hadoop.hbase.client.MasterCallable.prepare(MasterCallable.java:38) at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:115) at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3704) at org.apache.hadoop.hbase.client.HBaseAdmin.getTableDescriptorsByTableName(HBaseAdmin.java:2646) at org.apache.hadoop.hbase.util.HBaseFsck.getHTableDescriptors(HBaseFsck.java:3167) at org.apache.hadoop.hbase.util.HBaseFsck.getTables(HBaseFsck.java:3158) at org.apache.hadoop.hbase.util.HBaseFsck.reportTablesInFlux(HBaseFsck.java:1040) at org.apache.hadoop.hbase.util.HBaseFsck.onlineConsistencyRepair(HBaseFsck.java:636) at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:671) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:69) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:43) at org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:38) at org.apache.hadoop.hbase.util.TestHBaseFsck.testHBaseFsck(TestHBaseFsck.java:205) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74) Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: callId: 2 methodName: IsMasterRunning param {TODO: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos$IsMasterRunningRequest} at org.apache.hadoop.hbase.ipc.AsyncRpcClient.call(AsyncRpcClient.java:235) at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) ... 27 more {code} That's not right. Mentioned change might have affected latency/throughput, but not correctness I'd say. > Provide HBase superuser higher priority over other users in the RPC handling > ---------------------------------------------------------------------------- > > Key: HBASE-13375 > URL: https://issues.apache.org/jira/browse/HBASE-13375 > Project: HBase > Issue Type: Improvement > Components: rpc > Reporter: Devaraj Das > Assignee: Mikhail Antonov > Fix For: 1.1.0 > > Attachments: HBASE-13375-v0.patch > > > HBASE-13351 annotates Master RPCs so that RegionServer RPCs are treated with > a higher priority compared to user RPCs (and they are handled by a separate > set of handlers, etc.). It may be good to stretch this to users too - hbase > superuser (configured via hbase.superuser) gets higher priority over other > users in the RPC handling. That way the superuser can always perform > administrative operations on the cluster even if all the normal priority > handlers are occupied (for example, we had a situation where all the master's > handlers were tied up with many simultaneous createTable RPC calls from > multiple users and the master wasn't able to perform any operations initiated > by the admin). (Discussed this some with [~enis] and [~elserj]). > Does this make sense to others? -- This message was sent by Atlassian JIRA (v6.3.4#6332)