Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-29919

Use the Retryable API in MongoDB connector

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.10
    • Fix Version/s: None
    • Component/s: Core MongoDB

      Description

      Currently Nuxeo is not robust when this scenario happens:

      1. Configure Nuxeo with MongoDB HA with replicaset mode (1 primary node, 3 secondary nodes, 1 arbitrary node), as recommended by Nuxeo
      2. Start Nuxeo
      3. Run a program which creates 50000 documents - it should last at least several minutes
      4. During the program execution, shut down the primary node
      5. Observe that there are some connection errors
        Caused by: javax.net.ssl.SSLException: Connection reset
         at sun.security.ssl.Alert.createSSLException(Alert.java:127) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1303) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:72) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:831) ~[?:1.8.0_272]
         at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:89) ~[mongo-java-driver-3.8.1.jar:?]
         at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:554) ~[mongo-java-driver-3.8.1.jar:?]
         at com.mongodb.internal.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:425) ~[mongo-java-driver-3.8.1.jar:?]
         ... 155 more
         Suppressed: java.net.SocketException: Broken pipe (Write failed)
         at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_272]
         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) ~[?:1.8.0_272]
         at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:355) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[?:1.8.0_272]
         at sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1303) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:72) ~[?:1.8.0_272]
         at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:831) ~[?:1.8.0_272]
         at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:89) ~[mongo-java-driver-3.8.1.jar:?]
         at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:554) ~[mongo-java-driver-3.8.1.jar:?] 

      There are several leads to improve Nuxeo

      Expected behavior:

      All documents are created without any loss. The possible errors are logged as warning if Nuxeo was able to recover the query and run it again without another exception.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: