Fix memory leak caused by S3 DownloadFileObj #11674
Merged
+7
−9
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.
Background
We started experiencing BigData test suite OOM failures in the CI since 9th October 3PM CET. Investigations revealed that there was a memory leak in boto3
DownloadFileObj
andDownloadFile
but only when running in the same pytest process as LocalStack.There are some untested hypothesis around why this is happening. These operations are implemented in S3 Transfer library (which can fall back to awscrt). This also uses a thread pool executor, is Pytest interfering somehow?
Changes
For now, the workaround is to use S3
GetObject
. There is a slight performance impact, but since the affected code is a testutil and used in the test suite. There will be no impact on LocalStack.Related
Possibly related to: