Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-2733

what's the reason of Connection reset by peer and how to reproduce it

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None

    Description

      Recently in production environment I found there was an error log of querying mongodb

      11-Jan-2018 09:30:37.913 SEVERE [http-nio-7000-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [dispatcher] in context with path [/extract] threw exception [Request processing failed; nested exception is com.mongodb.MongoQueryException: Query failed with error code 6 and error message 'Connection reset by peer' on server 10.47.50.216:27017] with root cause
       com.mongodb.MongoQueryException: Query failed with error code 6 and error message 'Connection reset by peer' on server 10.47.50.216:27017
              at com.mongodb.operation.QueryHelper.translateCommandException(QueryHelper.java:31)
              at com.mongodb.operation.QueryBatchCursor.getMore(QueryBatchCursor.java:213)
              at com.mongodb.operation.QueryBatchCursor.hasNext(QueryBatchCursor.java:103)
              at com.mongodb.MongoBatchCursorAdapter.hasNext(MongoBatchCursorAdapter.java:46)
      
      

      and the java code is like this

      MongoCursor<Document> iterator = collection.find(query).projection(projection).iterator();
      while (iterator.hasNext()) {
          Document next = iterator.next();
          //...
      }
      

      I do not know what reason could cause this error and how to reproduce this error?

      I tried some manner to reproduce it but failed.

      1. During iterate then disable access mongodb by iptables

      sudo iptables -A OUTPUT -p tcp  -d XXX.XXX.XXX.XXX --dport 27017 -j DROP
      

      I got

      Caused by: java.net.ConnectException: Operation timed out
      	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_91]
      	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_91]
      	at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_91]
      	at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) ~[mongo-java-driver-3.4.2.jar:?]
      	at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongo-java-driver-3.4.2.jar:?]
      

      2. then I tried directly turn wifi, this time I got

      Caused by: java.net.ConnectException: Network is unreachable
      	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_91]
      	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_91]
      	at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_91]
      	at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) ~[mongo-java-driver-3.4.2.jar:?]
      	at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongo-java-driver-3.4.2.jar:?]
      

      3. last I tried kill mongod process, and I got

      Caused by: java.net.ConnectException: Connection refused
      	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_91]
      	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_91]
      	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_91]
      	at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_91]
      	at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) ~[mongo-java-driver-3.4.2.jar:?]
      	at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongo-java-driver-3.4.2.jar:?]
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            zhugw Guowei Zhu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: