-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #11259 - HTTP/2 connection not closed after idle timeout when TCP congested. #11267
Fixes #11259 - HTTP/2 connection not closed after idle timeout when TCP congested. #11267
Conversation
…CP congested. Now upon the second idle timeout, the connection is forcibly closed. Fixed also similar problem in HTTP/3. Signed-off-by: Simone Bordet <[email protected]>
Signed-off-by: Simone Bordet <[email protected]>
Signed-off-by: Simone Bordet <[email protected]>
Signed-off-by: Simone Bordet <[email protected]>
if (LOG.isDebugEnabled()) | ||
LOG.debug("Already closed, ignored idle timeout for {}", HTTP2Session.this); | ||
// Writes may be TCP congested, so termination never happened. | ||
flusher.abort(new TimeoutException()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All branches of the switch above result in a new TimeoutException
, so just do it once before the switch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Uhm, no. The TimeoutException
is only allocated if terminate=true
which only happens if the session is already in CLOSED
state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is also allocated in locally and remotely closed cases. At least give it the same message as the others.
if (LOG.isDebugEnabled()) | ||
LOG.debug("Already closed, ignored idle timeout for {}", HTTP2Session.this); | ||
// Writes may be TCP congested, so termination never happened. | ||
flusher.abort(new TimeoutException()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is also allocated in locally and remotely closed cases. At least give it the same message as the others.
Signed-off-by: Simone Bordet <[email protected]>
Signed-off-by: Simone Bordet <[email protected]>
…CP congested. (#11268) * Backport of #11267. Signed-off-by: Simone Bordet <[email protected]>
Now upon the second idle timeout, the connection is forcibly closed.
Fixed also similar problem in HTTP/3.