[JAVA-2909] exception com.mongodb.MongoSocketWriteException: Exception sending message Created: 18/Jul/18  Updated: 11/Sep/19  Resolved: 18/Jul/18

Status: Closed
Project: Java Driver
Component/s: None
Affects Version/s: 3.6.2
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Minh Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 14.04



 Description   

My application was deployed on Google cloud (both of Mongodb server & client), and sometime it got the following exception.

Please tell me why this happen, and how can I fix this issue.

########################################################

[2018-07-18 12:56:01.304], ERROR, http-thread-pool(4), reallife.food.agent.response.ResponseDataImpl, exception[2018-07-18 12:56:01.304], ERROR, http-thread-pool(4), reallife.food.agent.response.ResponseDataImpl, exceptioncom.mongodb.MongoSocketWriteException: Exception sending message at com.mongodb.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:518) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:406) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.InternalStreamConnection.sendCommandMessage(InternalStreamConnection.java:270) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:253) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:98) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:441) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:80) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:189) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:264) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:126) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:118) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:226) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:217) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:120) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CountOperation$1.call(CountOperation.java:240) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CountOperation$1.call(CountOperation.java:236) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:461) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:405) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CountOperation.execute(CountOperation.java:236) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.operation.CountOperation.execute(CountOperation.java:59) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.Mongo$3.execute(Mongo.java:822) ~[mongodb-driver-3.6.2.jar:?] at com.mongodb.MongoCollectionImpl.executeCount(MongoCollectionImpl.java:215) ~[mongodb-driver-3.6.2.jar:?] at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:183) ~[mongodb-driver-3.6.2.jar:?] at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:178) ~[mongodb-driver-3.6.2.jar:?] at reallife.food.recipe.mongodb.crawler.VideoLinkMongoDb.insertVideoLink(VideoLinkMongoDb.java:156) ~[reallife-mongoDb-1.0.jar:?] at reallife.food.google.api.YoutubeSearch.getYoutubeVideoBaseId(YoutubeSearch.java:136) ~[external-api-lib-1.0.jar:?] at reallife.food.google.api.YoutubeSearch.getYoutubeVideo(YoutubeSearch.java:63) ~[external-api-lib-1.0.jar:?] at reallife.food.action.YoutubeAction.seachYoutube(YoutubeAction.java:325) ~[reallife-actionConcept-1.0.jar:?] at reallife.food.action.YoutubeAction.doYoutubeResponse(YoutubeAction.java:236) ~[reallife-actionConcept-1.0.jar:?] at reallife.food.agent.logic.PlanExecutionImpl.discoveryRecipe(PlanExecutionImpl.java:138) ~[PlanExecutionImpl.class:?] at reallife.food.agent.response.ResponseDataImpl.createResponseData(ResponseDataImpl.java:49) ~[ResponseDataImpl.class:?] at reallife.food.agent.resource.PlanningService.searchRecipe(PlanningService.java:70) ~[PlanningService.class:?] at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161] at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[jersey-server.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[jersey-server.jar:?] at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[jersey-server.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[jersey-common.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[jersey-common.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[jersey-common.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[jersey-common.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[jersey-common.jar:?] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[jersey-common.jar:?] at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[jersey-server.jar:?] at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[jersey-server.jar:?] at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:471) ~[jersey-container-servlet-core.jar:?] at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:425) ~[jersey-container-servlet-core.jar:?] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:383) ~[jersey-container-servlet-core.jar:?] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:336) ~[jersey-container-servlet-core.jar:?] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:223) ~[jersey-container-servlet-core.jar:?] at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1681) ~[web-core.jar:?] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) ~[web-core.jar:?] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) ~[web-core.jar:?] at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) ~[log4j-web-2.8.2.jar:2.8.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) ~[web-core.jar:?] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) ~[web-core.jar:?] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) ~[web-core.jar:?] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) ~[web-core.jar:?] at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) ~[web-core.jar:?] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) ~[web-core.jar:?] at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) ~[web-glue.jar:?] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) ~[web-core.jar:?] at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416) ~[web-core.jar:?] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283) ~[web-core.jar:?] at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:466) ~[kernel.jar:?] at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:169) ~[kernel.jar:?] at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591) ~[nucleus-grizzly-all.jar:?] at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571) ~[nucleus-grizzly-all.jar:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]Caused by: java.net.SocketException: Connection reset at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115) ~[?:1.8.0_161] at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[?:1.8.0_161] at com.mongodb.connection.SocketStream.write(SocketStream.java:74) ~[mongodb-driver-core-3.6.2.jar:?] at com.mongodb.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:403) ~[mongodb-driver-core-3.6.2.jar:?] ... 88 more



 Comments   
Comment by Minh [ 19/Jul/18 ]

Hi Ross,

Thank you very much for your support. 

I posted it to Stackoverflow:

https://stackoverflow.com/questions/51412480/exception-com-mongodb-mongosocketwriteexception-exception-sending-message 

 

>The error reported is the Connection was reset, this could be caused by a number of factors one common one is the MongoClient being closed in another thread. 

The mongo connection is via MongoClient, and the application does not close the connection explicitly. How can I check " MongoClient being closed in another thread"

Bests,

Minh.

Comment by Ross Lawley [ 18/Jul/18 ]

Hi minh.agent,

Just to let you know this project is for Java driver bugs or feature requests. The best place for questions regarding MongoDB usage or the Java driver specifics is the mongodb-user mailinglist or stackoverflow as you will reach a boarder audience there. If your business requires an answer from MongoDB within a time frame then we do offer production support.

If you do follow up via one of the options above please post a link and I will follow the conversation there. The error reported is the Connection was reset, this could be caused by a number of factors one common one is the MongoClient being closed in another thread. Please double check that isn't the case.

All the best,

Ross

Generated at Thu Feb 08 08:58:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.