-
Bug
-
Resolution: Done
-
Major
-
None
-
jboss-fuse-6.3
-
None
-
%
-
-
When HTTP clients use the Fabric8 gateway for sharing requests for HTTP services among containers, it takes a surprisingly long time for a client of the gateway to respond to a situation where one of the service containers fails.
The first problem, which might be unavoidable, is the time it takes for the gateway to realise that one of its target containers has crashed. It responds a lot more quickly to a orderly shut-down because, I presume, the container that is shutting down is able to close its ZK session properly. However, responding to a crash relies, I think, on ZK heartbeats and timeouts.
The second problem, though, is that the gateway maintains a client connection even after it has learned that the container it is trying to communicate on behalf of that client with is no longer available. At a time at which new requests on the gateway might be handled correctly, by being directed to one of the surviving containers, old requests are stuck, waiting for the client to time out.
When the gateway realizes that one of its service endpoints is no longer available, for whatever reason, any client connections to the gateway ought to be closed immediately, so that clients can respond to a failure more promptly.
- is related to
-
ENTESB-7648 HTTP gateway to allow http request timeout to be set
- Closed
- relates to
-
ENTESB-11978 Gateway not closing connections on node
- Done