Author: liangxie
Date: Thu Feb 13 03:46:55 2014
New Revision: 1567844

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

Modified:
    
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java

Modified: 
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java?rev=1567844&r1=1567843&r2=1567844&view=diff
==============================================================================
--- 
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
 (original)
+++ 
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
 Thu Feb 13 03:46:55 2014
@@ -1852,6 +1852,12 @@ public class RpcServer implements RpcSer
         try {
           status.pause("Waiting for a call");
           Call call = myCallQueue.take(); // pop the queue; maybe blocked here
+          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());
           if (LOG.isDebugEnabled()) {


Reply via email to