On Thu, 2020-05-14 at 13:59 +0200, u...@natune.net.INVALID wrote: > > I need to see the original exception with a full stack trace that > > caused the i/o reactor to shut down and preferably the complete > > session > > log leading to that condition. > > > > Oleg > > I was unable to get HttpClient5 logging to work.
I am not sure what I can do without a log or a reproducer I could run locally in my development environment. Oleg > I used this config in > /WEB-INF/log4j2.xml. The log files get created, but they contain 0 > output. > > <Configuration> > <Appenders> > <File name="ctx" filename="/var/log/rst/httpcontext.log"> > <PatternLayout pattern="%d %-5level [%logger] > %msg%n%xThrowable" /> > </File> > <File name="wire" filename="/var/log/rst/wire.log"> > <PatternLayout pattern="%d %-5level [%logger] > %msg%n%xThrowable" /> > </File> > </Appenders> > <Loggers> > <Logger name="org.apache.hc.client5.http" level="DEBUG"> > <AppenderRef ref="ctx"/> > </Logger> > <Logger name="org.apache.hc.client5.http.wire" level="DEBUG"> > <AppenderRef ref="wire"/> > </Logger> > <Root level="INFO"> > <AppenderRef ref="ctx" /> > </Root> > </Loggers> > </Configuration> > > I am able though to reproduce the error by shutting down the tomcat9 > server that this httpclient is connecting to. After starting the > server > up again, things work normal for a couple of minutes. Then I get > this > exception (the cause is the strange part, ) > > ...: Unable to connect to API Gateway > at com.rst.ResponseHolder.onCompleted(ResponseHolder.java:15) > at > org.asynchttpclient.AsyncCompletionHandler.onCompleted(AsyncCompletio > nHandler.java:66) > at > com.gold.ThrottleRequestFilter$AsyncHandlerWrapper.onCompleted(Thrott > leRequestFilter.java:75) > at > org.asynchttpclient.netty.NettyResponseFuture.loadContent(NettyRespon > seFuture.java:222) > at > org.asynchttpclient.netty.NettyResponseFuture.done(NettyResponseFutur > e.java:257) > at > org.asynchttpclient.netty.handler.AsyncHttpClientHandler.finishUpdate > (AsyncHttpClientHandler.java:241) > at > org.asynchttpclient.netty.handler.HttpHandler.handleChunk(HttpHandler > .java:114) > at > org.asynchttpclient.netty.handler.HttpHandler.handleRead(HttpHandler. > java:143) > at > org.asynchttpclient.netty.handler.AsyncHttpClientHandler.channelRead( > AsyncHttpClientHandler.java:78) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:379) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:365) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(Abstra > ctChannelHandlerContext.java:357) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToM > essageDecoder.java:102) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:379) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:365) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(Abstra > ctChannelHandlerContext.java:357) > at > io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandle > rContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) > at > io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMes > sageDecoder.java:321) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessage > Decoder.java:295) > at > io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedCha > nnelDuplexHandler.java:251) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:379) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:365) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(Abstra > ctChannelHandlerContext.java:357) > at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1486) > at > io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1 > 235) > at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1282) > at > io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProte > ction(ByteToMessageDecoder.java:498) > at > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageD > ecoder.java:437) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessage > Decoder.java:276) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:379) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:365) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(Abstra > ctChannelHandlerContext.java:357) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(Defau > ltChannelPipeline.java:1410) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:379) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst > ractChannelHandlerContext.java:365) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChanne > lPipeline.java:919) > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(Abstra > ctNioByteChannel.java:163) > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.jav > a:714) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEve > ntLoop.java:650) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.ja > va:576) > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThread > EventExecutor.java:989) > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java > :74) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalR > unnable.java:30) > at java.base/java.lang.Thread.run(Thread.java:834) > > Caused by: org.apache.hc.core5.reactor.IOReactorShutdownException: > I/O > reactor has been shut down > at > org.apache.hc.core5.reactor.IOWorkers.validate(IOWorkers.java:51) > at > org.apache.hc.core5.reactor.IOWorkers.access$000(IOWorkers.java:31) > at > org.apache.hc.core5.reactor.IOWorkers$PowerOfTwoSelector.next(IOWorke > rs.java:67) > at > org.apache.hc.core5.reactor.AbstractIOReactorBase.connect(AbstractIOR > eactorBase.java:53) > at > org.apache.hc.client5.http.impl.nio.MultihomeIOSessionRequester$1.exe > cuteNext(MultihomeIOSessionRequester.java:105) > at > org.apache.hc.client5.http.impl.nio.MultihomeIOSessionRequester$1.run > (MultihomeIOSessionRequester.java:156) > at > org.apache.hc.client5.http.impl.nio.MultihomeIOSessionRequester.conne > ct(MultihomeIOSessionRequester.java:160) > at > org.apache.hc.client5.http.impl.nio.MultihomeConnectionInitiator.conn > ect(MultihomeConnectionInitiator.java:70) > at > org.apache.hc.core5.http2.nio.pool.H2ConnPool.connectSession(H2ConnPo > ol.java:103) > at > org.apache.hc.core5.http2.nio.pool.H2ConnPool.connectSession(H2ConnPo > ol.java:59) > at > org.apache.hc.core5.reactor.AbstractIOSessionPool.getSessionInternal( > AbstractIOSessionPool.java:200) > at > org.apache.hc.core5.reactor.AbstractIOSessionPool.getSession(Abstract > IOSessionPool.java:131) > at > org.apache.hc.client5.http.impl.async.InternalH2AsyncExecRuntime.acqu > ireEndpoint(InternalH2AsyncExecRuntime.java:94) > at > org.apache.hc.client5.http.impl.async.AsyncConnectExec.execute(AsyncC > onnectExec.java:134) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(A > syncExecChainElement.java:54) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement$1.proceed > (AsyncExecChainElement.java:62) > at > org.apache.hc.client5.http.impl.async.AsyncProtocolExec.internalExecu > te(AsyncProtocolExec.java:174) > at > org.apache.hc.client5.http.impl.async.AsyncProtocolExec.execute(Async > ProtocolExec.java:136) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(A > syncExecChainElement.java:54) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement$1.proceed > (AsyncExecChainElement.java:62) > at > org.apache.hc.client5.http.impl.async.AsyncHttpRequestRetryExec.inter > nalExecute(AsyncHttpRequestRetryExec.java:96) > at > org.apache.hc.client5.http.impl.async.AsyncHttpRequestRetryExec.execu > te(AsyncHttpRequestRetryExec.java:184) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(A > syncExecChainElement.java:54) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement$1.proceed > (AsyncExecChainElement.java:62) > at > org.apache.hc.client5.http.impl.async.AsyncRedirectExec.internalExecu > te(AsyncRedirectExec.java:112) > at > org.apache.hc.client5.http.impl.async.AsyncRedirectExec.execute(Async > RedirectExec.java:259) > at > org.apache.hc.client5.http.impl.async.AsyncExecChainElement.execute(A > syncExecChainElement.java:54) > at > org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient > $1.sendRequest(InternalAbstractHttpAsyncClient.java:186) > at > org.apache.hc.core5.http.nio.support.BasicRequestProducer.sendRequest > (BasicRequestProducer.java:93) > at > org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient > .doExecute(InternalAbstractHttpAsyncClient.java:157) > at > org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execut > e(CloseableHttpAsyncClient.java:98) > at > org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execut > e(CloseableHttpAsyncClient.java:108) > at > org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient.execut > e(CloseableHttpAsyncClient.java:117) > at > com.rst.consumer.JsonTransmitter.sendRequest(JsonTransmitter.java:79) > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org > For additional commands, e-mail: httpclient-users-h...@hc.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org