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());


Reply via email to