Can someone please provide inputs on how the following scenario is expected to work?
Let's say a HttpserverConnection is created due to an incoming HTTP request. The channel for this connection has a read-timeout of 30 mins and the HttpReadListener has a no-request-timeout of 30 mins. A response is created for the HTTP request which is read by the client. However, there is no FIN packet from the client due to which the ExchangeCompletionListener is not triggered and hence the request limit counter is not decremented. In this case, the read timeout will not happen as there is a successful read. I hope my understanding is correct. As the connection does not receive requests after some time, the HTTP server connection is closed due to no-request-timeout. However, when this happens the ExchangeCompletionListener is not triggered and hence the request limit counter is not decremented.
This is eventually leading to queued requests and 513 errors.
Can someone please let me know if this can be handled by setting any timeout parameter in undertow/xnio configuration? Why is request limit not decremented in this case when there is a no-request-timeout? Is this an expected behavior or a bug?