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