HybridConnectionListener.RequestHandler GateWayTimeout on requests that don't respond in 60 seconds
nickeeex opened this issue · comments
I'm not sure if this is a limitation in the protocol or something that could be implement to the library.
Currently if a long running process that does not return anything to the sender in 60 seconds the request fails in a 504 GatewayTimeout
We can work around this 60 second timeout by manually sending keep alive bytes to the response.OutputStream every x seconds but this feels like a hacky solution.
Versions
- OS platform and version: Windows 10 1803 (OS Build 17134.590)
- .NET Version: 4.7.1
- NuGet package version or commit ID: v2.0.0-preview1-20180523
https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-hybrid-connections-protocol (Thanks @nickeeex for pointing out this public location)
The protocol spec states:
each request must be responded to within 60 seconds or the delivery will be reported as having failed. The 60 second deadline is counted until the response frame has been received by the service. An ongoing response with multiple binary frames cannot become idle for more than 60 seconds or it is terminated.
Thanks for the reply.
I guess we'll just have to live with that and strip away the extra keep alive bytes on the sender before returning the response to the caller.