Add error handling when reaching max keys listing S3 objects #676
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.
Summary
There exists an issue today where when attempting to list files from S3, it can fail to exit the loop listing files. This is because there are no checks against reaching the default max keys of 1000. The new AWS CRT client has different behavior when attempting to read the continuation token of a listing that has reached max, which causes this to infinitely block downloading the chunk.
This increases the default of 1000 to 2500, and adds error checking for this edge case. The current chunk sizes of 15GB can occasionally just exceed 1k files which eventually causes the cluster to become unhealthy. Improvements such as #649 are resulting in better utilizing the disk space which can increase the likelihood of this occurring.