[ 
https://issues.apache.org/jira/browse/TINKERPOP-2369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17159892#comment-17159892
 ] 

Carlos Mario Villadiego commented on TINKERPOP-2369:
----------------------------------------------------

I'm having something similar issue. In my project we are connecting to cosmosdb 
gremlin database in azure. Cosmos server close idle (1 hour) connections 
automatically and it seems the driver try to attemp a request using this closed 
connection and obviously I get the error:

2020-07-17T10:22:58.544696620Z Caused by: 
java.util.concurrent.ExecutionException: 
java.nio.channels.ClosedChannelException2020-07-17T10:22:58.544696620Z Caused 
by: java.util.concurrent.ExecutionException: 
java.nio.channels.ClosedChannelException2020-07-17T10:22:58.544700820Z at 
java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source) 
~[na:na]2020-07-17T10:22:58.544705120Z at 
java.base/java.util.concurrent.CompletableFuture.get(Unknown Source) 
~[na:na]2020-07-17T10:22:58.544709220Z at 
org.apache.tinkerpop.gremlin.driver.Client.submit(Client.java:212) 
~[gremlin-driver-3.2.4.jar!/:3.2.4]2020-07-17T10:22:58.544715820Z at 
org.apache.tinkerpop.gremlin.driver.Client.submit(Client.java:198) 
~[gremlin-driver-3.2.4.jar!/:3.2.4]2020-07-17T10:22:58.544720121Z at 
sura.autotriage.cosmosdbgremlin.helpers.TriageClient.execute(TriageClient.java:41)
 
~[driven-adapters-cosmosdbgremlin-repository-0.0.1.jar!/:na]2020-07-17T10:22:58.544724421Z
 at 
sura.autotriage.cosmosdbgremlin.helpers.TriageClient.executeCommand(TriageClient.java:21)
 
~[driven-adapters-cosmosdbgremlin-repository-0.0.1.jar!/:na]2020-07-17T10:22:58.544728621Z
 at 
sura.autotriage.cosmosdbgremlin.patient.PatientDataRepository.findByIdentifcation(PatientDataRepository.java:25)
 
~[driven-adapters-cosmosdbgremlin-repository-0.0.1.jar!/:na]2020-07-17T10:22:58.544732921Z
 at 
sura.autotriage.cosmosdbgremlin.patient.PatientDataRepository$$FastClassBySpringCGLIB$$5afdbcea.invoke(<generated>)
 
~[driven-adapters-cosmosdbgremlin-repository-0.0.1.jar!/:na]2020-07-17T10:22:58.544737521Z
 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) 
~[spring-core-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544741721Z 
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544746022Z 
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544750222Z 
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544755022Z 
at 
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
 ~[spring-tx-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544759322Z 
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544763622Z 
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544767822Z 
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
 ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]2020-07-17T10:22:58.544772023Z 
at 
sura.autotriage.cosmosdbgremlin.patient.PatientDataRepository$$EnhancerBySpringCGLIB$$6d056cef.findByIdentifcation(<generated>)
 
~[driven-adapters-cosmosdbgremlin-repository-0.0.1.jar!/:na]2020-07-17T10:22:58.544776523Z
 at 
sura.autotriage.usecase.patient.QueryPatientUseCase.getPatient(QueryPatientUseCase.java:14)
 ~[domain-usecase-0.0.1.jar!/:na]2020-07-17T10:22:58.544780823Z at 
sura.autotriage.usecase.triage.CreateTriageUseCase.getPatient(CreateTriageUseCase.java:44)
 ~[domain-usecase-0.0.1.jar!/:na]2020-07-17T10:22:58.544785023Z at 
sura.autotriage.usecase.triage.CreateTriageUseCase.lambda$createTriage$2(CreateTriageUseCase.java:34)
 ~[domain-usecase-0.0.1.jar!/:na]2020-07-17T10:22:58.544789323Z at 
sura.autotriage.usecase.triage.CreateTriageUseCase$$Lambda$742/0000000084053A10.apply(Unknown
 Source) ~[na:na]2020-07-17T10:22:58.544795923Z at 
reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:151) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544800224Z 
at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544804524Z 
at 
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544808724Z 
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544812924Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544817124Z 
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544821724Z 
at 
reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544825924Z 
at 
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:203)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544830125Z 
at 
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:203)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544834425Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544838525Z 
at 
reactor.core.publisher.MonoIgnoreThen$ThenAcceptInner.onNext(MonoIgnoreThen.java:296)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544842725Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544846925Z 
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544851125Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544855326Z 
at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:247) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544859526Z 
at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:329) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544863826Z 
at 
reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:173)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544880326Z 
at 
reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:92)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544884227Z 
at 
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544888227Z 
at 
reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544894627Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544898827Z 
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544902727Z 
at 
reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onNext(FluxContextStart.java:96)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544906727Z 
at 
reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:287)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544910628Z 
at 
reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:330)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544914628Z 
at 
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544918428Z 
at 
reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:152)
 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544922428Z 
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544926328Z 
at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544930328Z 
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) 
~[reactor-core-3.3.6.RELEASE.jar!/:3.3.6.RELEASE]2020-07-17T10:22:58.544934228Z 
at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:365) 
~[reactor-netty-0.9.8.RELEASE.jar!/:0.9.8.RELEASE]2020-07-17T10:22:58.544938229Z
 at 
reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:368)
 
~[reactor-netty-0.9.8.RELEASE.jar!/:0.9.8.RELEASE]2020-07-17T10:22:58.544942129Z
 at 
reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:495)
 
~[reactor-netty-0.9.8.RELEASE.jar!/:0.9.8.RELEASE]2020-07-17T10:22:58.544946029Z
 at 
reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96)
 
~[reactor-netty-0.9.8.RELEASE.jar!/:0.9.8.RELEASE]2020-07-17T10:22:58.544950029Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544954129Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544958129Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544962029Z
 at 
reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:214)
 
~[reactor-netty-0.9.8.RELEASE.jar!/:0.9.8.RELEASE]2020-07-17T10:22:58.544968330Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544972330Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544976330Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544983730Z
 at 
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544987830Z
 at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
 ~[netty-codec-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544991731Z 
at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
 ~[netty-codec-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544995631Z 
at 
io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.544999631Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545003531Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545007531Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545011731Z
 at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545015731Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545019632Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545023532Z
 at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545027532Z
 at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
 
~[netty-transport-native-epoll-4.1.50.Final-linux-x86_64.jar!/:4.1.50.Final]2020-07-17T10:22:58.545031532Z
 at 
io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:387)
 
~[netty-transport-native-epoll-4.1.50.Final-linux-x86_64.jar!/:4.1.50.Final]2020-07-17T10:22:58.545035432Z
 at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545039332Z 
at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545045932Z 
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384) 
~[netty-transport-native-epoll-4.1.50.Final-linux-x86_64.jar!/:4.1.50.Final]2020-07-17T10:22:58.545049933Z
 at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545053833Z 
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545057833Z 
at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545061733Z 
at java.base/java.lang.Thread.run(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545065533Z Caused by: 
java.nio.channels.ClosedChannelException: null2020-07-17T10:22:58.545069533Z at 
io.netty.channel.AbstractChannel$AbstractUnsafe.newClosedChannelException(AbstractChannel.java:957)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545073533Z
 at 
io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:865) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545077534Z
 at 
io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545081434Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545085334Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545089334Z
 at 
io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1071)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545093334Z
 at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545097134Z 
at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545101134Z 
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545105035Z
 at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 ~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545109035Z 
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
~[netty-common-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545112935Z 
... 1 common frames omitted2020-07-17T10:22:58.545116735Z Caused by: 
java.io.IOException: Broken pipe2020-07-17T10:22:58.545120535Z at 
java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method) 
~[na:na]2020-07-17T10:22:58.545124435Z at 
java.base/sun.nio.ch.SocketDispatcher.write(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545130636Z at 
java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545134536Z at 
java.base/sun.nio.ch.IOUtil.write(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545138336Z at 
java.base/sun.nio.ch.IOUtil.write(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545142136Z at 
java.base/sun.nio.ch.SocketChannelImpl.write(Unknown Source) 
~[na:na]2020-07-17T10:22:58.545146236Z at 
io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:408) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545150236Z
 at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:930)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545154136Z
 at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545158037Z
 at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:897) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545161937Z
 at 
io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545165837Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:750)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545169837Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:742)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545173737Z
 at 
io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:728)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545177637Z
 at io.netty.handler.ssl.SslHandler.forceFlush(SslHandler.java:2077) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545181637Z 
at io.netty.handler.ssl.SslHandler.wrapAndFlush(SslHandler.java:815) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545185538Z 
at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:792) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545189538Z 
at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:1931) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545193438Z 
at 
io.netty.handler.ssl.SslHandler.closeOutboundAndChannel(SslHandler.java:1899) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545197338Z 
at io.netty.handler.ssl.SslHandler.close(SslHandler.java:743) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545201238Z 
at 
io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:622)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545205438Z
 at 
io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:606)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545209338Z
 at 
io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:472)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545217939Z
 at 
org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.exceptionCaught(Handler.java:265)
 ~[gremlin-driver-3.2.4.jar!/:3.2.4]2020-07-17T10:22:58.545222139Z at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545226039Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545230039Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545233939Z
 at 
org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler.exceptionCaught(WebSocketClientHandler.java:102)
 ~[gremlin-driver-3.2.4.jar!/:3.2.4]2020-07-17T10:22:58.545237939Z at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545241940Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545245940Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545249840Z
 at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1136) 
~[netty-handler-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545253840Z 
at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545257740Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545262240Z
 at 
io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545266241Z
 at 
io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545270141Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545274141Z
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545278041Z
 at 
io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545281941Z
 at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545288341Z
 at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:174)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545292341Z
 at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545296242Z
 at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545300142Z
 at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545304042Z
 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) 
~[netty-transport-4.1.50.Final.jar!/:4.1.50.Final]2020-07-17T10:22:58.545308042Z
 ... 3 common frames omitted

 

What would be the recommended action to overcome this problem at this time 
while a final fix is released in the driver ? Should I to retry the request ?

> Connections in ConnectionPool are not replaced in background when underlying 
> channel is closed
> ----------------------------------------------------------------------------------------------
>
>                 Key: TINKERPOP-2369
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2369
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: driver
>    Affects Versions: 3.4.1
>            Reporter: Johannes Carlsen
>            Priority: Major
>
> Hi Tinkerpop team!
>  
> We are using the Gremlin Java Driver to connect to an Amazon Neptune cluster. 
> We are using the IAM authentication feature provided by Neptune, which means 
> that individual websocket connections are closed by the server every 36 
> hours, when their credentials expire. The current implementation of the 
> driver does not handle this situation well, as the Connection whose channel 
> has been closed by the server remains in the ConnectionPool. The connection 
> is only reported as dead and replaced when when it is later chosen by the 
> LoadBalancingStrategy to server a client request, which inevitably fails when 
> the connection attempts to write to the closed channel.
> A fix for this bug would cause the connection pool to be automatically 
> refreshed in the background by either the keep-alive mechanism, which should 
> replace a connection if a keep-alive request fails, or by adding a listener 
> for the close frame being sent to the underlying channel to replace the 
> connection. Without a fix, the only way to recover from a stale connection is 
> to retry the request at the cluster level, which will allow the request to be 
> directed to a different connection.
> I noticed a PR out for the .NET client to fix this behavior: 
> [https://github.com/apache/tinkerpop/pull/1279.] We are hoping for something 
> similar in the Gremlin Java Driver.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to