Skip to content

AWS: Don't close analytics accelerator stream factories that are still in use - #18589

Open
binarybrain-009 wants to merge 1 commit into
apache:mainfrom
binarybrain-009:aws-aal-factory-cache-eviction
Open

binarybrain-009 wants to merge 1 commit into
apache:mainfrom
binarybrain-009:aws-aal-factory-cache-eviction

Conversation

@binarybrain-009

Copy link
Copy Markdown

The analytics accelerator stream factory cache is bounded at 100 entries and its removal listener closes evicted factories, so once a JVM has more than 100 live S3FileIO instances, reads through an evicted factory hang. Every entry already has an owner that removes it: closing the S3FileIO calls cleanupCache. This drops the size bound so a factory is closed only when its S3FileIO is closed. FileIOs that are never closed keep their factory cached, but they already keep their S3 clients open.

Closes #17485

Test plan: TestAnalyticsAcceleratorUtil opens 150 FileIOs and checks that every factory is still cached after cache maintenance. It fails with the size bound and passes without it.


AI Disclosure

…l in use

The stream factory cache was bounded at 100 entries and closed evicted
factories, so with more than 100 live S3FileIO instances in one JVM,
reads through an evicted factory hung. Factories are now only closed
when their S3FileIO is closed.

Closes apache#17485
@github-actions github-actions Bot added the AWS label Oct 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AWS: AnalyticsAcceleratorUtil size-based eviction closes an S3SeekableInputStreamFactory that callers are still reading through

1 participant