This is an automated email from the ASF dual-hosted git repository.
reidchan pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-1 by this push:
new 2ff4e4f HBASE-22559 [RPC] set guard against
CALL_QUEUE_HANDLER_FACTOR_CONF_KEY
2ff4e4f is described below
commit 2ff4e4f09630a8c04e57d16a71362708dd165532
Author: Reid Chan <[email protected]>
AuthorDate: Fri Jun 14 11:24:55 2019 +0800
HBASE-22559 [RPC] set guard against CALL_QUEUE_HANDLER_FACTOR_CONF_KEY
---
.../main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
index 15c416c..d46786b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
@@ -133,6 +133,20 @@ public abstract class RpcExecutor {
this.abortable = abortable;
float callQueuesHandlersFactor =
this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0);
+ if (Float.compare(callQueuesHandlersFactor, 1.0f) > 0 ||
+ Float.compare(0.0f, callQueuesHandlersFactor) > 0) {
+ LOG.warn(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY +
+ " is *ILLEGAL*, it should be in range [0.0, 1.0]");
+ // For callQueuesHandlersFactor > 1.0, we just set it 1.0f.
+ if (Float.compare(callQueuesHandlersFactor, 1.0f) > 0) {
+ LOG.warn("Set " + CALL_QUEUE_HANDLER_FACTOR_CONF_KEY + " 1.0f");
+ callQueuesHandlersFactor = 1.0f;
+ } else {
+ // But for callQueuesHandlersFactor < 0.0, following method
#computeNumCallQueues
+ // will compute max(1, -x) => 1 which has same effect of default value.
+ LOG.warn("Set " + CALL_QUEUE_HANDLER_FACTOR_CONF_KEY + " default value
0.0f");
+ }
+ }
this.numCallQueues = computeNumCallQueues(handlerCount,
callQueuesHandlersFactor);
this.queues = new ArrayList<>(this.numCallQueues);