Conversation
We detected livelock issue with using the AWS S3 CRT client in our current move implementation. It seemed to be caused by a CRT upload fed by a blocking InputStream that is itself created by another CRT download with the same client. If they both land on the same _event loop_ and the object is large (from our testing, above 16MB), the upload loops infinitely and stops the download from fetching data.
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.
We detected livelock issue with using the AWS S3 CRT client in our current move implementation.
It seemed to be caused by a CRT upload fed by a blocking InputStream that is itself created by another CRT download with the same client.
If they both land on the same event loop and the object is large (from our testing, above 16MB), the upload loops infinitely and stops the download from fetching data.
Does this change relate to existing issues or pull requests?
Follow-up on #1128
Does this change require an update to the documentation?
No.
How has this been tested?
Local ad-hoc testing. Verified this caused no deadlocks when moving files agains a MinIO backend (since the problem is a logic one with aws).
This also seems to provide more throughput. I didn't measure against a true S3 bucket, but against MinIO backend.
this branch:
main: