HBASE-16670 Make RpcServer#processRequest logic more robust

Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2ff2c0ba
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2ff2c0ba
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2ff2c0ba

Branch: refs/heads/hbase-14439
Commit: 2ff2c0ba6eb99f2c700b4d1f185d63fa71da05fe
Parents: 19bbf44
Author: Yu Li <l...@apache.org>
Authored: Thu Sep 22 15:43:53 2016 +0800
Committer: Yu Li <l...@apache.org>
Committed: Thu Sep 22 15:43:53 2016 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java   | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2ff2c0ba/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 470bf2c..12c21d9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -1860,6 +1860,12 @@ public class RpcServer implements RpcServerInterface, 
ConfigurationObserver {
             param = builder.build();
           }
           offset += paramSize;
+        } else {
+          // currently header must have request param, so we directly throw 
exception here
+          String msg = "Invalid request header: " + 
TextFormat.shortDebugString(header)
+              + ", should have param set in it";
+          LOG.warn(msg);
+          throw new DoNotRetryIOException(msg);
         }
         if (header.hasCellBlockMeta()) {
           buf.position(offset);

Reply via email to