spdystream icon indicating copy to clipboard operation
spdystream copied to clipboard

implement UserIdleTimeout

Open aojea opened this issue 4 years ago • 5 comments

Implement a new method SetUserIdleTimeout() that allows to set a timeout for idle sessions, but contrarty to the SetIdleTimeout(), this doesn't take into account SPDY ping frames.

This allows consumers to use SPDY ping frames to keep the TCP and SPDY connections alive, but also to detect and close the connection if it is not being used, i.e. no data is sent by the applications through the connection.

Signed-off-by: Antonio Ojea [email protected]

aojea avatar Jun 15 '21 11:06 aojea

@dmcgowan I've implemented the locking using the atomic functions to avoid any possible issue with the other locks https://github.com/moby/spdystream/pull/86/commits/83610fa6fc69ad17491d9e488ed3c415d0debebb

aojea avatar Jun 22 '21 08:06 aojea

@dmcgowan @aojea any update here?

adisky avatar Nov 11 '21 07:11 adisky

@dmcgowan @aojea any update here?

Joseph-Goergen avatar Mar 30 '22 16:03 Joseph-Goergen

I don't think this has any chances to merge, also, I honestly think that this parameter should be use to control session timeout ...

I'm going to close it to avoid confussions

aojea avatar Apr 08 '22 14:04 aojea

I closed it because of the lack of attention, but since may have some traction I'm going to reopen it

aojea avatar Jun 03 '22 18:06 aojea

the CRI-O community is still interested in this. Is there anything we can do to move this forward?

haircommander avatar Nov 01 '22 15:11 haircommander

The change looks OK to me. Given the time its been since changes were made here, I think I would like to see where this change is used and how it is tested by library users to feel the most comfortable merging it.

dmcgowan avatar Nov 01 '22 17:11 dmcgowan

Just checking to see where this PR is sitting

Joseph-Goergen avatar Nov 18 '22 20:11 Joseph-Goergen

https://github.com/containerd/containerd/issues/5563 Would be the driving usage

BenTheElder avatar Nov 19 '22 04:11 BenTheElder

the CRI-O community is still interested in this. Is there anything we can do to move this forward?

@aojea ^

jrvaldes avatar Feb 13 '23 17:02 jrvaldes

For people coming to this PR, this will be solved once this is implemented https://github.com/kubernetes/kubernetes/pull/115493

This PR is a workaround to the underly problem that is that implementations are conflating USER session and TCP session, but with https://github.com/kubernetes/kubernetes/pull/115493 people can opt-out of SPDY pings (and suffer the problems of not having them, ie. connections silently closed by intermediate devices , like NAT boxes that depend on traffic to renew the timers(

aojea avatar Feb 14 '23 08:02 aojea

I follow. Thanks @aojea for the explanation.

jrvaldes avatar Feb 14 '23 13:02 jrvaldes