Github user jacques-n commented on a diff in the pull request: https://github.com/apache/drill/pull/442#discussion_r58611408 --- Diff: exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcBus.java --- @@ -159,19 +159,15 @@ public ChannelClosedHandler(C clientConnection, Channel channel) { @Override public void operationComplete(ChannelFuture future) throws Exception { String msg; - if(local!=null) { + if(local != null) { msg = String.format("Channel closed %s <--> %s.", local, remote); }else{ msg = String.format("Channel closed %s <--> %s.", future.channel().localAddress(), future.channel().remoteAddress()); } - if (RpcBus.this.isClient()) { - if(local != null) { - logger.info(String.format(msg)); - } - } else { - queue.channelClosed(new ChannelClosedException(msg)); - } + logger.info(msg); // should we leave this at info level ? + + queue.channelClosed(new ChannelClosedException(msg), future.channel()); clientConnection.close(); --- End diff -- I believe this is still required because we could be in a backpressure blocking state and need to error out the pending messages. My patch tries to consolidate the connection close behavior (so we have one place to do work instead of two). Note that right now we add close handlers in both the connection and the rpc bus which is confusing/unclean.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---