Intermittent MongoSocketWriteException and MongoSocketReadException on a Mongo Vertx application

XMLWordPrintableJSON

    • Type: Question
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: 4.0.2
    • Component/s: None
    • None
    • None
    • Java Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Mongo DB server logs 

       
       

          2025-02-11 11:59:23.792 2025-02-11T11:59:23.643+0530 I NETWORK [conn1151351] received client metadata from 10.6.223.46:57992 conn1151351: { driver: { name: "mongo-java-driver", version: "unknown" }

      , os: { type: "Linux", name: "Linux", architecture: "amd64", version: "6.1.112+" }, platform: "Java/IcedTea/1.8.0_275-b01" }

       
          2025-02-11 11:59:23.792 2025-02-11T11:59:23.643+0530 I NETWORK [listener] connection accepted from 10.6.223.46:57992 #1151351 (61 connections now open)  
          2025-02-11 11:59:23.792 2025-02-11T11:59:23.641+0530 I NETWORK [conn1151178] end connection 10.6.223.46:51670 (60 connections now open)  
          2025-02-11 11:59:09.257 2025-02-11T11:59:09.100+0530 I NETWORK [conn1151177] end connection 10.6.223.46:51660 (61 connections now open)

       

      Stack trace from vertx java application

      Vertx-mongo client version - 3.6.2

      2025-02-11 11:59:40,922 error vert.x-worker-thread-296 UserSelectorUtils:17 - LogMessage(request_id=null, customer_id=null, captain_id=null, order_id=null, client_id=null, branch_id=null, endpoint=null, event=null, message=error in address selectors.custom.process, timestamp=2025-02-11T06:29:40.922Z, data=null, stack=Exception sending message, com.mongodb.MongoSocketWriteException: Exception sending message; at com.mongodb.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:518); at com.mongodb.connection.InternalStreamConnection.access$1200(InternalStreamConnection.java:74); at com.mongodb.connection.InternalStreamConnection$3.failed(InternalStreamConnection.java:447); at com.mongodb.connection.AsynchronousSocketChannelStream$1.failed(AsynchronousSocketChannelStream.java:120); at com.mongodb.connection.AsynchronousSocketChannelStream$2.failed(AsynchronousSocketChannelStream.java:185); at com.mongodb.connection.AsynchronousSocketChannelStream$AsyncWritableByteChannelAdapter$WriteCompletionHandler.failed(AsynchronousSocketChannelStream.java:211); at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:128); at sun.nio.ch.Invoker$2.run(Invoker.java:218); at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112); at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149); at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624); at java.lang.Thread.run(Thread.java:748);Caused by: java.io.IOException: Broken pipe; at sun.nio.ch.FileDispatcherImpl.write0(Native Method); at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47); at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93); at sun.nio.ch.IOUtil.write(IOUtil.java:65); at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implWrite(UnixAsynchronousSocketChannelImpl.java:694); at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:383); at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:400); at java.nio.channels.AsynchronousSocketChannel.write(AsynchronousSocketChannel.java:577); at com.mongodb.connection.AsynchronousSocketChannelStream$AsyncWritableByteChannelAdapter.write(AsynchronousSocketChannelStream.java:193); at com.mongodb.connection.AsynchronousSocketChannelStream.pipeOneBuffer(AsynchronousSocketChannelStream.java:173); at com.mongodb.connection.AsynchronousSocketChannelStream.writeAsync(AsynchronousSocketChannelStream.java:108); at com.mongodb.connection.InternalStreamConnection.writeAsync(InternalStreamConnection.java:438); at com.mongodb.connection.InternalStreamConnection.sendMessageAsync(InternalStreamConnection.java:434); at com.mongodb.connection.InternalStreamConnection.sendCommandMessageAsync(InternalStreamConnection.java:348); at com.mongodb.connection.InternalStreamConnection.sendAndReceiveAsync(InternalStreamConnection.java:327); at com.mongodb.connection.UsageTrackingInternalConnection.sendAndReceiveAsync(UsageTrackingInternalConnection.java:113); at com.mongodb.connection.DefaultConnectionPool$PooledConnection.sendAndReceiveAsync(DefaultConnectionPool.java:452); at com.mongodb.connection.CommandProtocolImpl.executeAsync(CommandProtocolImpl.java:95); at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.executeAsync(DefaultServer.java:200); at com.mongodb.connection.DefaultServerConnection.executeProtocolAsync(DefaultServerConnection.java:280); at com.mongodb.connection.DefaultServerConnection.commandAsync(DefaultServerConnection.java:151); at com.mongodb.connection.DefaultServerConnection.commandAsync(DefaultServerConnection.java:142); at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocolAsync(CommandOperationHelper.java:380); at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocolAsync(CommandOperationHelper.java:282); at com.mongodb.operation.FindOperation$2$1.call(FindOperation.java:765); at com.mongodb.operation.OperationHelper$5.call(OperationHelper.java:236); at com.mongodb.operation.OperationHelper.validateCollation(OperationHelper.java:135); at com.mongodb.operation.OperationHelper$4.call(OperationHelper.java:224); at com.mongodb.operation.OperationHelper.validateReadConcern(OperationHelper.java:94); at com.mongodb.operation.OperationHelper.validateReadConcernAndCollation(OperationHelper.java:218); at com.mongodb.operation.OperationHelper.validateReadConcernAndCollation(OperationHelper.java:233); at com.mongodb.operation.FindOperation$2.call(FindOperation.java:757); at com.mongodb.operation.OperationHelper$7.onResult(OperationHelper.java:526); at com.mongodb.operation.OperationHelper$7.onResult(OperationHelper.java:523); at com.mongodb.connection.DefaultServer$1.onResult(DefaultServer.java:99); at com.mongodb.connection.DefaultServer$1.onResult(DefaultServer.java:90); at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49); at com.mongodb.connection.DefaultConnectionPool.openAsync(DefaultConnectionPool.java:189); at com.mongodb.connection.DefaultConnectionPool.getAsync(DefaultConnectionPool.java:146); at com.mongodb.connection.DefaultServer.getConnectionAsync(DefaultServer.java:90); at com.mongodb.binding.AsyncClusterBinding$AsyncClusterBindingConnectionSource.getConnection(AsyncClusterBinding.java:114); at com.mongodb.async.client.ClientSessionBinding$SessionBindingAsyncConnectionSource.getConnection(ClientSessionBinding.java:124); at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:523); at com.mongodb.operation.OperationHelper.access$100(OperationHelper.java:61); at com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback.onResult(OperationHelper.java:543); at com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSourceCallback.onResult(OperationHelper.java:531); at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49); at com.mongodb.async.client.ClientSessionBinding$2.onResult(ClientSessionBinding.java:76); at com.mongodb.async.client.ClientSessionBinding$2.onResult(ClientSessionBinding.java:70); at com.mongodb.binding.AsyncClusterBinding$1.onResult(AsyncClusterBinding.java:88); at com.mongodb.binding.AsyncClusterBinding$1.onResult(AsyncClusterBinding.java:82); at com.mongodb.connection.BaseCluster$ServerSelectionRequest.onResult(BaseCluster.java:421); at com.mongodb.connection.BaseCluster.handleServerSelectionRequest(BaseCluster.java:285); at com.mongodb.connection.BaseCluster.selectServerAsync(BaseCluster.java:145); at com.mongodb.binding.AsyncClusterBinding.getAsyncClusterBindingConnectionSource(AsyncClusterBinding.java:82); at com.mongodb.binding.AsyncClusterBinding.getReadConnectionSource(AsyncClusterBinding.java:72); at com.mongodb.async.client.ClientSessionBinding.getReadConnectionSource(ClientSessionBinding.java:70); at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:490); at com.mongodb.operation.FindOperation.executeAsync(FindOperation.java:747); at com.mongodb.async.client.AsyncOperationExecutorImpl$1.onResult(AsyncOperationExecutorImpl.java:66); at com.mongodb.async.client.AsyncOperationExecutorImpl$1.onResult(AsyncOperationExecutorImpl.java:58); at com.mongodb.async.client.ClientSessionHelper.createClientSession(ClientSessionHelper.java:60); at com.mongodb.async.client.ClientSessionHelper.withClientSession(ClientSessionHelper.java:48); at com.mongodb.async.client.AsyncOperationExecutorImpl.execute(AsyncOperationExecutorImpl.java:58); at com.mongodb.async.client.FindIterableImpl.first(FindIterableImpl.java:202); at io.vertx.ext.mongo.impl.MongoClientImpl.findOne(MongoClientImpl.java:312); at io.vertx.reactivex.ext.mongo.MongoClient.findOne(MongoClient.java:606); at io.vertx.reactivex.ext.mongo.MongoClient.lambda$rxFindOne$17(MongoClient.java:621); at io.vertx.reactivex.impl.AsyncResultSingle.subscribeActual(AsyncResultSingle.java:48); at io.reactivex.Single.subscribe(Single.java:3495); at io.reactivex.internal.operators.single.SingleDoOnError.subscribeActual(SingleDoOnError.java:35); at io.reactivex.Single.subscribe(Single.java:3495); at io.reactivex.internal.operators.maybe.MaybeFilterSingle.subscribeActual(MaybeFilterSingle.java:40); at io.reactivex.Maybe.subscribe(Maybe.java:4174); at io.reactivex.internal.operators.maybe.MaybeFlatten.subscribeActual(MaybeFlatten.java:42); at io.reactivex.Maybe.subscribe(Maybe.java:4174); at io.reactivex.internal.operators.maybe.MaybeFlatten.subscribeActual(MaybeFlatten.java:42); at io.reactivex.Maybe.subscribe(Maybe.java:4174); at io.reactivex.internal.operators.maybe.MaybeSwitchIfEmptySingle.subscribeActual(MaybeSwitchIfEmptySingle.java:45); at io.reactivex.Single.subscribe(Single.java:3495); at io.reactivex.internal.operators.single.SingleFlatMap$SingleFlatMapCallback.onSuccess(SingleFlatMap.java:84); at io.reactivex.internal.operators.single.SingleJust.subscribeActual(SingleJust.java:30); at io.reactivex.Single.subscribe(Single.java:3495); at io.reactivex.internal.operators.single.SingleFlatMap.subscribeActual(SingleFlatMap.java:36); at io.reactivex.Single.subscribe(Single.java:3495); at io.reactivex.Single.subscribe(Single.java:3481); at com.rapido.utils.UserSelectorUtils.singleWrapper(UserSelectorUtils.java:75); at com.rapido.bl.CustomSelectorVerticle.lambda$start$2(CustomSelectorVerticle.java:72); at io.reactivex.internal.subscribers.LambdaSubscriber.onNext(LambdaSubscriber.java:65); at io.vertx.reactivex.impl.FlowableReadStream.lambda$subscribeActual$2(FlowableReadStream.java:83); at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:261); at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:239); at io.vertx.core.eventbus.impl.EventBusImpl$InboundDeliveryContext.next(EventBusImpl.java:565); at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$5(EventBusImpl.java:524); at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:320); at io.vertx.core.impl.WorkerContext.lambda$wrapTask$0(WorkerContext.java:34); at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76); at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149); at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624); at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30); ... 1 more)

            Assignee:
            Maxim Katcharov
            Reporter:
            Nitya Mehrotra
            None
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: