You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "Shuker, Carl" <Ca...@anz.com.INVALID> on 2021/12/06 22:15:55 UTC

netty requestTimeout issue still present

Hello team

I have trawled through what I could and this Jira appears to be related: https://issues.apache.org/jira/browse/CAMEL-15195

When using the netty producer configuration option requestTimeout, with the latest 3.13.0 version, we are seeing disconnections occur after successful responses have been handled.

Removing the requestTimeout from the options solves the disconnection problem but causes our application to critically degrade when we fail to get responses.

We were originally using camel version 2.23.2 (using the netty4 component at the time) and were not having any issue with the timeout, this only started to occur after upgrading to version 2.25.4, at which point I migrated to the latest 3.13.0 after seeing that above Jira was marked as resolved in a later version.

I enabled trace logging on the NettyProducer and can see that the changes that were related to that Jira are being triggered but an exception is being thrown that appears to still be related to the timeout handling.

This occurs for both our TCP and HTTP netty configurations, our tcp config for example:

.toF("netty:%s?sync=true&decoders=#isoDecoder&encoders=#isoEncoder&ssl=true&sslContextParameters=#sslContextParameters&requestTimeout=%d", remoteAddress, requestTimeout)

Stack trace to follow.

Help appreciated
Carl

Stacktrace:

>>>

T17:19:33,920 DEBUG OrchestratorStation        Sending AS2805 MTI=0800 k=800004001120617193359585705554 DE11=004001 DE70=Logon to remote tcp://localhost:9000
T17:19:33,922 TRACE NettyProducer              Pool[active=0, idle=0]
T17:19:34,007 DEBUG NettyProducer              Created new TCP client bootstrap connecting to localhost:9000 with options: Bootstrap(BootstrapConfig(group: NioEventLoopGroup, channelFactory: ReflectiveChannelFactory(NioSocketChannel.class), options: {SO_KEEPALIVE=true, CONNECT_TIMEOUT_MILLIS=10000, SO_REUSEADDR=true, TCP_NODELAY=true}, handler: org.apache.camel.component.netty.DefaultClientInitializerFactory@5c559d48, resolver: io.netty.resolver.DefaultAddressResolverGroup@5c4735d0))
T17:19:34,009 TRACE NettyProducer              Requested channel: AbstractBootstrap$PendingRegistrationPromise@7572605b(incomplete)
T17:19:34,009 TRACE NettyProducer              activateObject channel request: AbstractBootstrap$PendingRegistrationPromise@7572605b(incomplete)
T17:19:34,009 TRACE NettyProducer              Validating connecting channel request: AbstractBootstrap$PendingRegistrationPromise@7572605b(incomplete) -> true
T17:19:34,010 TRACE NettyProducer              Got channel request from pool AbstractBootstrap$PendingRegistrationPromise@7572605b(incomplete)
T17:19:34,051 TRACE NettyProducer              Channel open finished with AbstractBootstrap$PendingRegistrationPromise@7572605b(success)
T17:19:34,052 DEBUG NettyProducer              Creating connector to address: localhost:9000
T17:19:34,054 DEBUG NettyProducer              Channel: [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000] writing body: AS2805NetworkManagement0800Message[    0800 004001]
T17:19:34,137 TRACE NettyProducer              Channel open: [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000]
T17:19:34,704 TRACE NettyProducer              Operation complete DefaultChannelPromise@200d3948(success)
T17:19:34,716 TRACE NettyProducer              Message received: AS2805NetworkManagement0810Message[    0810 004001]
T17:19:34,717 TRACE NettyProducer              Removing timeout channel as we received message
T17:19:34,717 DEBUG NettyProducer              Channel: [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000] received body: AS2805NetworkManagement0810Message[    0810 004001]
T17:19:34,719 TRACE NettyProducer              Putting channel back to pool [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000]
T17:19:34,719 TRACE NettyProducer              passivateObject channel request: AbstractBootstrap$PendingRegistrationPromise@7572605b(success)
T17:19:34,758 DEBUG OrchestratorStation        Received     0810 004001 response code 00
T17:19:34,762  INFO OrchestratorStation        Station local online
T17:19:59,397 TRACE NettyProducer              activateObject channel request: AbstractBootstrap$PendingRegistrationPromise@7572605b(success)
T17:19:59,397 TRACE NettyProducer              reset the request timeout as we activate the channel
T17:19:59,398 TRACE NettyProducer              Validating channel: [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000] -> true
T17:19:59,398 TRACE NettyProducer              passivateObject channel request: AbstractBootstrap$PendingRegistrationPromise@7572605b(success)
T17:20:06,404 TRACE NettyProducer              Exception caught at Channel: [id: 0xccb5f3f2, L:/127.0.0.1:53272 - R:localhost/127.0.0.1:9000]
io.netty.handler.timeout.ReadTimeoutException: null
T17:20:06,404 DEBUG NettyProducer              Closing channel as an exception was thrown from Netty
io.netty.handler.timeout.ReadTimeoutException: null
T17:20:06,413 TRACE NettyProducer              Channel closed: [id: 0xccb5f3f2, L:/127.0.0.1:53272 ! R:localhost/127.0.0.1:9000]
This e-mail and any attachments to it (the "Communication") is, unless otherwise stated, confidential, may contain copyright material and is for the use only of the intended recipient. If you receive the Communication in error, please notify the sender immediately by return e-mail, delete the Communication and the return e-mail, and do not read, copy, retransmit or otherwise deal with it. Any views expressed in the Communication are those of the individual sender only, unless expressly stated to be those of Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its related entities including ANZ Bank New Zealand Limited (together "ANZ"). ANZ does not accept liability in connection with the integrity of or errors in the Communication, computer virus, data corruption, interference or delay arising from or in respect of the Communication.