diff --git llap-server/src/java/org/apache/hadoop/hive/llap/shufflehandler/ShuffleHandler.java llap-server/src/java/org/apache/hadoop/hive/llap/shufflehandler/ShuffleHandler.java index f63375c..e90f0df 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/shufflehandler/ShuffleHandler.java +++ llap-server/src/java/org/apache/hadoop/hive/llap/shufflehandler/ShuffleHandler.java @@ -797,8 +797,18 @@ public void messageReceived(ChannelHandlerContext ctx, MessageEvent evt) if (!keepAliveParam && !connectionKeepAliveEnabled) { lastMap.addListener(ChannelFutureListener.CLOSE); } else { - // Entire response is written out. Safe to enable timeout handling. - timeoutHandler.setEnabledTimeout(true); + lastMap.addListener(new ChannelFutureListener() { + @Override + public void operationComplete(ChannelFuture future) throws Exception { + if (!future.isSuccess()) { + // On error close the channel. + future.getChannel().close(); + return; + } + // Entire response is written out. Safe to enable timeout handling. + timeoutHandler.setEnabledTimeout(true); + } + }); } }