You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/02/13 04:47:24 UTC

svn commit: r1567845 - /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java

Author: liangxie
Date: Thu Feb 13 03:47:23 2014
New Revision: 1567845

URL: http://svn.apache.org/r1567845
Log:
HBASE-10506 Fail-fast if client connection is lost before the real call be executed in RPC layer

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java?rev=1567845&r1=1567844&r2=1567845&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java Thu Feb 13 03:47:23 2014
@@ -1397,6 +1397,12 @@ public abstract class HBaseServer implem
           status.pause("Waiting for a call");
           Call call = myCallQueue.take(); // pop the queue; maybe blocked here
           updateCallQueueLenMetrics(myCallQueue);
+          if (!call.connection.channel.isOpen()) {
+            if (LOG.isDebugEnabled()) {
+              LOG.debug(Thread.currentThread().getName() + ": skipped " + call);
+            }
+            continue;
+          }
           status.setStatus("Setting up call");
           status.setConnection(call.connection.getHostAddress(), 
               call.connection.getRemotePort());