[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:
>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 |