Skip to content

Fix NIOTooManyBytesError that sometimes occurs during XCTests #129

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
merged 1 commit into from
Jun 20, 2024

Conversation

cmcgee1024
Copy link
Member

Sometimes, when not using a GitHub access token, the API returns a content-length that is shorter than the true length of the response body, which causes NIO to throw the error because there are remaining bytes in the payload.

The upTo parameter for collect is not intended to be used in this way. It acts as an upper limit to the size of a reasonable response, which prevents excessive memory consumption attempting to process it.

Instead of setting the upTo to the length given by the response, set the upper limit to something static that is an expected limit to the size that is expected. In the case of JSON, set it to 1MB.

This fixes #128

Sometimes, when not using a GitHub access token, the API returns
a content-length that is shorter than the true length of the
response body, which causes NIO to throw the error because there
are remaining bytes in the payload.

The upTo parameter for collect is not intended to be used in this
way. It acts as an upper limit to the size of a reasonable response,
which prevents excessive memory consumption attempting to process
it.

Instead of setting the upTo to the length given by the response,
set the upper limit to something static that is an expected limit
to the size that is expected. In the case of JSON, set it to 1MB.
@adam-fowler adam-fowler merged commit 364b02b into swiftlang:main Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Too many bytes error running the swiftly tests
2 participants