commit 882d67061d4cdc33f0a90402c285d606c673451c Author: Eric Yang Date: Thu Apr 26 14:11:04 2018 -0400 YARN-8211. Reduced logging for RegistryDNS on bad queries. Contributed by Eric Yang diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java index c31ce89..642673d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java @@ -76,6 +76,7 @@ import java.net.SocketAddress; import java.net.SocketException; import java.net.UnknownHostException; +import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; import java.nio.channels.ServerSocketChannel; @@ -802,6 +803,8 @@ public void nioTCPClient(SocketChannel ch) throws IOException { ch.socket().getPort(), ch.socket().getLocalAddress().getHostName(), ch.socket().getLocalPort(), e); + } catch (BufferUnderflowException e) { + // Ignore system monitor ping packets } finally { IOUtils.closeStream(ch); } @@ -817,12 +820,16 @@ public void nioTCPClient(SocketChannel ch) throws IOException { * @throws EOFException */ private int getMessgeLength(ByteBuffer buf) throws EOFException { - int ch1 = buf.get(); - int ch2 = buf.get(); - if ((ch1 | ch2) < 0) { + try { + int ch1 = buf.get(); + int ch2 = buf.get(); + if ((ch1 | ch2) < 0) { + throw new EOFException(); + } + return (ch1 << 8) + (ch2 & 0xff); + } catch (BufferUnderflowException e) { throw new EOFException(); } - return (ch1 << 8) + (ch2 & 0xff); } /**