Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-8738

Limit Exceptions thrown by DataNode when a client makes socket connection and sends an empty message

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.7.1
    • None
    • datanode
    • None

    Description

      When a client creates a socket connection to the Datanode and sends an empty message, the datanode logs have exceptions like these:

      2015-07-08 20:00:55,427 ERROR datanode.DataNode (DataXceiver.java:run(278)) - bidev17.rtp.ibm.com:50010:DataXceiver error processing unknown operation src: /127.0.0.1:41508 dst: /127.0.0.1:50010
      java.io.EOFException
      at java.io.DataInputStream.readShort(DataInputStream.java:315)
      at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:58)
      at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:227)
      at java.lang.Thread.run(Thread.java:745)
      2015-07-08 20:00:56,671 ERROR datanode.DataNode (DataXceiver.java:run(278)) - bidev17.rtp.ibm.com:50010:DataXceiver error processing unknown operation src: /127.0.0.1:41509 dst: /127.0.0.1:50010
      java.io.EOFException
      at java.io.DataInputStream.readShort(DataInputStream.java:315)
      at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:58)
      at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:227)
      at java.lang.Thread.run(Thread.java:745)

      These can fill up the logs and was recently noticed with an Ambari 2.1 based install which tries to check if the datanode is up.

      Can be easily reproduced with a simple Java client creating a Socket connection:

      public static void main(String[] args) {
      Socket DNClient;
      try

      { DNClient = new Socket("127.0.0.1", 50010); DataOutputStream os= new DataOutputStream(DNClient.getOutputStream()); os.writeBytes(""); os.close(); }

      catch (UnknownHostException e)

      { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

      }

      Attachments

        1. HDFS-8738.001.patch
          0.7 kB
          Rajesh Kartha

        Issue Links

          Activity

            People

              kartha Rajesh Kartha
              kartha Rajesh Kartha
              Votes:
              3 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated: