-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
fix(browser): Ensure keepalive flag is correctly set for parallel requests #7553
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
Merged
Conversation
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
3 tasks
AbhiPrasad
approved these changes
Mar 21, 2023
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.
Should we also update the doc string?
The spec says:
If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.
size-limit report 📦
|
Updated the doc accordingly! |
ref: #1496 |
Lms24
approved these changes
Mar 21, 2023
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.
We noticed that sometimes request would remain in a seemingly pending state.
After some investigation, we found out that the limit of 64kb for keepalive-enabled fetch requests is not per request but for all parallel requests running at the same time.
This PR fixes this by keeping track of how large the pending body sizes are, and setting
keepalive
accordingly.I tried this in my local reproduction app, where it now worked as expected!
When do we use keepalive now
We use keepalive if:
This should defensively work for relevant cases.
Why do we want to have keepalive, when possible?
Especially for replays and transactions, having keepalive enabled means we can capture more data when a user leaves the page, which would otherwise be lost. This lead to problems with Next.js transaction collection, for example. In Replay, we want to be able to make sure to do a final flush before the user leaves the page.
Spec reference
Fixes #7546
Fixes #6049