Hi

It smells like a bug, you are welcome to create a JIRA and if you can
work on an unit test we can use as reproducer.
Also check the existing timeout tests in camel-netty.


On Wed, Jun 10, 2020 at 7:54 PM Vincenzo Galluccio
<vincenzo.gallucci...@gmail.com> wrote:
>
> Hello,
>
> I'm having a problem with Camel-Netty component version 3.3.0 when
> using the requestTimeout option, which is causing the request to
> always timeout even when a response is received on time.
> The ReadTimeoutException should only be triggered if a response is not
> received on time.
>
> I have a Netty Producer Endpoint, in a Route, configured with
> requestTimeout set to 10000 ms, as follows:
>
> ```
> @Component
> public class TransactionsRoute extends RouteBuilder {
>
>     @Override
>     public void configure() {
>
>         from("direct:startRoute")
>        
> .to(netty:tcp://localhost:9999?sync=true&encoders=#encoders&decoders=#decoders&requestTimeout=10000);
>     }
> }
> ```
>
> See logs below which show that a request is sent at 15:20:10.996 and
> response is received at 15:20:11.256, and the exception is triggered
> at 15:20:21.260, which is 10 seconds after the response is received
> (note: requestTimeout set to 10000 ms):
>
> ```
> 2020-06-10 15:20:10.996 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Channel open finished with
> AbstractBootstrap$PendingRegistrationPromise@347574(success)
> 2020-06-10 15:20:10.996 DEBUG 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Creating connector to
> address: localhost:9999
> 2020-06-10 15:20:10.996 DEBUG 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Channel: [id: 0x4fd36b4a,
> L:/127.0.0.1:63714 - R:localhost/127.0.0.1:9999] writing body: [...]
> 2020-06-10 15:20:11.000 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Channel open: [id:
> 0x4fd36b4a, L:/127.0.0.1:63714 - R:localhost/127.0.0.1:9999]
> 2020-06-10 15:20:11.252 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Operation complete
> DefaultChannelPromise@1f64970(success)
> 2020-06-10 15:20:11.256 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Message received: [ ... ]
> 2020-06-10 15:20:11.256 DEBUG 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Channel: [id: 0x4fd36b4a,
> L:/127.0.0.1:63714 - R:localhost/127.0.0.1:9999] received body: [...]
> 2020-06-10 15:20:11.256 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Putting channel back to
> pool [id: 0x4fd36b4a, L:/127.0.0.1:63714 - R:localhost/127.0.0.1:9999]
> 2020-06-10 15:20:11.256 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : passivateObject channel
> request: AbstractBootstrap$PendingRegistrationPromise@347574(success)
>
> 2020-06-10 15:20:21.260 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Exception caught at
> Channel: [id: 0x4fd36b4a, L:/127.0.0.1:63714 -
> R:localhost/127.0.0.1:9999]
>
> io.netty.handler.timeout.ReadTimeoutException: null
>
> 2020-06-10 15:20:21.260 DEBUG 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Closing channel as an
> exception was thrown from Netty
>
> io.netty.handler.timeout.ReadTimeoutException: null
>
> 2020-06-10 15:20:21.261 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyHelper    : Channel closed: [id:
> 0x4fd36b4a, L:/127.0.0.1:63714 ! R:localhost/127.0.0.1:9999]
> 2020-06-10 15:20:21.261 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Invalidating channel from
> pool [id: 0x4fd36b4a, L:/127.0.0.1:63714 ! R:localhost/127.0.0.1:9999]
> 2020-06-10 15:20:21.261 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Destroying channel request:
> AbstractBootstrap$PendingRegistrationPromise@347574(success)
> 2020-06-10 15:20:21.261  WARN 29616 --- [ClientTCPWorker]
> o.a.c.p.e.RedeliveryErrorHandler         : Cannot determine current
> route from Exchange with id: ID-WPU8L0058708-1591795167006-0-2, will
> fallback and use first error handler.
> 2020-06-10 15:20:21.261 TRACE 29616 --- [ClientTCPWorker]
> o.a.camel.component.netty.NettyProducer  : Channel closed: [id:
> 0x4fd36b4a, L:/127.0.0.1:63714 ! R:localhost/127.0.0.1:9999]
> ```
>
>
> This seems like a bug to me, but I wanted to send an email first to
> fetch your feedback.
>
> Thanks in advance for your support.
>
> Kind Regards,
> Vincenzo Galluccio



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to