IdleStateHandler AllIdleTimeoutTask запускается до истечения указанного времени ожидания - PullRequest
1 голос
/ 18 октября 2019

У нас есть обработчик, который прослушивает неактивные события канала, расширяющие ChannelInboundHandlerAdapter.

Канал предоставляется SimpleChannelPool. Конвейер канала сконфигурирован, как описано во фрагменте, где обработчик является расширением ChannelInboundHandlerAdapter.

В какой-то момент метод ChannelInboundHandlerAdapter # channelInactive вызывается заданным временем до указанного времени ожидания 10000 мс. Как около 500 мс. Я предполагаю, что AllIdleTimeoutTask пинается раньше ожидаемого времени ожидания. Некоторые говорили, что проблема начала возникать после того, как они переключили службу на новый экземпляр AMI. У вас еще не было возможности воспроизвести это локально.

Есть какие-нибудь мысли по этому поводу?

ch.pipeline (). AddLast ("idle", new IdleStateHandler (0, 0, 10000,TimeUnit.MILLISECONDS). 245) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:231) по адресу io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive (AbstractChannelHandlerContext.javaInhanHanter.HanlerHanterHanterHanlerHanterHanlerChannelHanlerHanlerHanlerHD): 75) на io.netty.handler.timeout.IdleStateHandler.channelInactive (IdleStateHandler.java:277) на io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:245) на iNoInChannelChannelChannel.Ch. AbstractChannelHandlerContext.java:231) по адресу io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive (AbstractChannelHandlerContext.java:224) по адресу io.netty.channel.ChannelInboundHandlerAdapter.channel.active. Channel.jpg.channelInactive (MessageAggregator.java:417) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:245) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeCnel.chana.lano.jjAbstractChannelHandlerContext.fireChannelInactive (AbstractChannelHandlerContext.java:224) по адресу io.netty.channel.CombinedChannelDuplexHandler $ DelegatingChannelHandlerContext.fireChannelInactive (CombinedChannelDuplexHandler.jj).netty.handler.codec.ByteToMessageDecoder.channelInactive (ByteToMessageDecoder.java:342)по адресу io.netty.handler.codec.http.HttpClientCodec $ Decoder.channelInactive (HttpClientCodec.java:281) по адресу io.netty.channel.CombinedChannelDuplexHandler.channelInactive (CombinedChannelDuplexHandler.java:223nelChannel.NetChannelChannel.HackNet.noC). (AbstractChannelHandlerContext.java:245) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:231) по адресу io.netty.channel.AbstractChannelHandlerContext.fireChannel24xt.handleLoggingHandler.channelInactive (LoggingHandler.java:167) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:245) по адресу io.netty.channel.AbstractChannelHandlerContext.oj ().AbstractChannelHandlerContext.fireChannelInactive (AbstractChannelHandlerContext.java:224) в io.netty.channel.ChannelInboundHandlerAdapter.channelInactive (ChannelInboundHandlerAdapter.java:75) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive (AbstractChannelHandlerContext.java:245) по адресу io.netty.channel.AbstractChannelHandlerContext.invokeChannelHandlerContext.invokeChannelHandlerContext.invokeChannelHandlerContext.invokeChannelInandlerContext.invoC (по адресу io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive (AbstractChannelHandlerContext.java:224) по адресу io.netty.channel.DefaultChannelPipeline $ HeadContext.channelInactive (DefaultChannelPipeline.java:1354)245(AbstractChannel.java:763) в io.netty.util.concurrent.AbstractEventExecutor.safeExecute (AbstractEventExecutor.java:163) в io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks (SingleThreadEventEx40tyo.au) .avachannel.nio.NioEventLoop.run (NioEventLoop.java:463) в io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run (SingleThreadEventExecutor.java:858) в io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:138)

...