You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I'm using async-http-client 2.12.3 for stream requests. Suddenly all failed requests are cancelled by timeout (1m).
Debugging the issue shows that these requests are actually failing almost immediately due to a closed channel, but unsuccessfully recovered with a warning of a closed stream to time out a minute later:
2024-07-30 17:56:25.809 | zio-default-blocking-35 org.asynchttpclient.netty.request.NettyRequestSender Using pooled Channel '[id: 0x64b880e7, L:/[my-client-ip]:56122 - R:my-server/[my-ip]:8443]' for 'POST' to my server
2024-07-30 17:56:25.809 | zio-default-blocking-35 org.asynchttpclient.netty.request.NettyRequestSender Using open Channel [id: 0x64b880e7, L:/[my-client-ip]:56122 - my-sever/[my-ip]:8443] for POST
2024-07-30 17:56:25.898 | AsyncHttpClient-4-1 org.asynchttpclient.netty.request.WriteListener Write exception on pooled channel, letting retry trigger stack_trace: java.nio.channels.ClosedChannelException: null
2024-07-30 17:56:25.899 | AsyncHttpClient-4-1 org.asynchttpclient.netty.handler.HttpHandler Channel Closed: [id: 0x64b880e7, L:/[my-client-ip]:56122 ! my-server/[my-ip]:8443] with attribute NettyResponseFuture{currentRetry=0, isDone=0, isCancelled=0, asyncHandler=sttp.client3.asynchttpclient.AsyncHttpClientBackend$$anon$1@22721d20, nettyRequest=org.asynchttpclient.netty.request.NettyRequest@5f78e6db, future=java.util.concurrent.CompletableFuture@481ada03[Not completed], uri=my-server:8443?query=INSERT+INTO+profiler_collector.samples+(mode,+service_name,+timestamp,+labels.key,+labels.value,%0A++stack_trace.method_id,+stack_trace.line,+stack_trace.type,+samples)%0AVALUES%0A, keepAlive=true, redirectCount=0, timeoutsHolder=org.asynchttpclient.netty.timeout.TimeoutsHolder@1bfcc8d7, inAuth=0, touch=1722351385898}
2024-07-30 17:56:25.899 | AsyncHttpClient-4-1 org.asynchttpclient.netty.request.NettyRequestSender Trying to recover request DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
2024-07-30 17:56:25.907 | AsyncHttpClient-4-3 org.asynchttpclient.netty.channel.NettyConnectListener Using new Channel '[id: 0xba9d5427, L:/[my-client-ip]:57472 - my-server/[my-ip]:8443]' for 'POST' to my-server
2024-07-30 17:56:25.908 | AsyncHttpClient-4-3 org.asynchttpclient.netty.request.body.NettyReactiveStreamsBody Stream has already been consumed and cannot be reset
2024-07-30 17:57:25.932 | AsyncHttpClient-timer-3-1 org.asynchttpclient.netty.request.NettyRequestSender Request timeout to my-server/my-ip:8443 after 60000 ms
Setting maxRetries to 0 and retrying requests outside of async-http-client solves the issue, requests are retried immediately and successfully.
Should NettyReactiveStreamsBody just log a warning for an already consumed stream? Why would not it cancel the response Future and maybe close the Channel, so the user would not wait for a timeout?
The text was updated successfully, but these errors were encountered:
Hi, I'm using async-http-client 2.12.3 for stream requests. Suddenly all failed requests are cancelled by timeout (1m).
Debugging the issue shows that these requests are actually failing almost immediately due to a closed channel, but unsuccessfully recovered with a warning of a closed stream to time out a minute later:
Setting maxRetries to 0 and retrying requests outside of async-http-client solves the issue, requests are retried immediately and successfully.
Should NettyReactiveStreamsBody just log a warning for an already consumed stream? Why would not it cancel the response Future and maybe close the Channel, so the user would not wait for a timeout?
The text was updated successfully, but these errors were encountered: