Always clear read idle timeout at the end of a request#455
Merged
Conversation
Collaborator
Author
|
Nightly fails because of sendable requirements. |
fabianfett
reviewed
Oct 8, 2021
| enum Action { | ||
| case startIdleReadTimeoutTimer(TimeAmount) | ||
| case resetIdleReadTimeoutTimer(TimeAmount) | ||
| case clearIdleReadTimeoutTimer |
Member
There was a problem hiding this comment.
I'm not sure, if we should remove this from the state machine tbh. The more I think about it the more I think we should just create another event (requestFailed) or something that removes the timer in the error case. Just calling clearTimer into the air and not syncing with state machine probably leads to out of sync errors in the future.
| if let newRequest = self.request, let idleReadTimeout = newRequest.requestOptions.idleReadTimeout { | ||
| self.idleReadTimeoutStateMachine = .init(timeAmount: idleReadTimeout) | ||
| } else { | ||
| self.clearIdleReadTimeoutTimer() |
Member
There was a problem hiding this comment.
I guess we should not trigger this here (though recommended by me earlier), but instead trigger a idle state machine event at all places where we cancel/fail the request.
This was referenced Dec 18, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
As described in #453, we only clear the read idle timeout after we receive a http
.endevent. But if we e.g. cancel we did not clear the timeout and hit some precondition down the road. The same issues exists for HTTP/2 too.Changes
.clearIdleReadTimeoutTimeraction that we previously returned after we have received a http.end