-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
Description
I have a client which sends a regular 1 minute api request to my http2 server.
On the server I have added on a listener for a session event, and on that session added a stream event listener. Then for each of the possible session events and stream events listed in the docs I have added listeners for those.
I am doing this in order to get better understanding as to why #14925 is happening
What I have discovered is that as the client makes its first heartbeat, the session is opened. Then at almost exactly ( within a millisecond) two minutes the session is closed regardless of the fact that at least one other request had been made on that session (at one minute from open).
I am also measuring the gap between closing the session and starting a new one, and that is just short of (to within 10 milliseconds) one minute. This indicates to me that the one minute heartbeat request is what is causing a new session to be made.
Is this is what is expected? I have tried reading the http2 spec, but its very light on what a session (I think it calls it a connection) is.
Because of the natural synchronisation of the heartbeat to the session boundaries, and the fact that I see an aborted event on the stream at the instance #14925 is triggered, I am wondering if its possible for session timeout (because thats what it appears to be ALTHOUGH no timeout event is fired) to be killing of the heartbeat request whilst it is in progress. If that IS the case, that seems to be very undesirable behaviour.