-
Type:
Task
-
Resolution: Works as Designed
-
Priority:
Major - P3
-
None
-
Affects Version/s: 3.4.2
-
Component/s: Connection Management
-
None
-
Environment:Unix, application built on Vertx3 + Netty 4.1.8.Final + MongoDBAtlas v3.4.4
-
None
-
None
-
None
-
None
-
None
-
None
-
None
An issue pretty much like JAVA-1931.
After a few operations on the database, idle time in between, I receive the following exception:
2017-06-09 10:37:34 com.mongodb.diagnostics.logging.JULLogger log [WARNING] Got socket exception on connection [connectionId{localValue:5, serverValue:366843}] to clusterxxx.mongodb.net:27017. All connections to clusterxxx.mongodb.net:27017 will be closed. 2017-06-09 10:37:34 com.mongodb.diagnostics.logging.JULLogger log [INFO] Closed connection [connectionId{localValue:5, serverValue:366843}] to clusterxxx.mongodb.net:27017 because there was a socket exception raised on another connection from this pool. com.mongodb.MongoSocketWriteException: Exception sending message at com.mongodb.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:465) at com.mongodb.connection.InternalStreamConnection.access$1000(InternalStreamConnection.java:66) at com.mongodb.connection.InternalStreamConnection$2.failed(InternalStreamConnection.java:323) at com.mongodb.connection.netty.NettyStream$3.operationComplete(NettyStream.java:188) at com.mongodb.connection.netty.NettyStream$3.operationComplete(NettyStream.java:184) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:481) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420) at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122) at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:906) at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:791) at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1291) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:739) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:731) at io.netty.channel.AbstractChannelHandlerContext.access$1900(AbstractChannelHandlerContext.java:38) at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1090) at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1137) at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1079) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:445) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) at java.lang.Thread.run(Thread.java:745) Caused by: java.nio.channels.ClosedChannelException at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source) 2017-06-09 10:37:34 com.mongodb.diagnostics.logging.JULLogger log [INFO] Discovered replica set primary clusterxxx.mongodb.net:27017
As in JAVA-1931, I'm calling System.setProperty("org.mongodb.async.type", "netty")
I'm using Vertx3 (Netty 4.1.8.Final) to connect to a MongoDBAtlas v3.4.4 and tried with different mongo-driver-async/core/bson versions: 3.4.1, 3.4.2 and 3.5.0 without any success.