Repository navigation
Merge the filesystem thread pools into one S3ThreadPool type (GH-1332) #1357
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
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
79129d7
Merge the filesystem thread pools into one S3ThreadPool type (GH-1332)
laughingman7743 5d56657
Correct the fork docs and drop the AioS3FileSystem executor override …
laughingman7743 f855e7f
Describe _create_executor as the executor source of files and operati…
laughingman7743 dbb262c
Narrow the fork and ordering docs and drop a duplicate test (GH-1332)
laughingman7743 06ff663
State the queue order in the S3ThreadPool.submit() docstring (GH-1332)
laughingman7743 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Independent review (relayed): Codex CLI 0.166.0, model
gpt-6-astra,codex exec -s read-only(session01a1a230-b700-7310-b686-af873c062562), static review of a detached snapshot off855e7fe11c7e12368a345b6b692b82f791b00ecagainst merge basec135e214da966bf8788dfd122d6a94a7722468e2, with the diff and the repository conventions, without the PR text or the self-review conclusions; no edits, tests, or network; both worktrees unchanged afterwards. Covered: constructor signatures, defaults and aliases; submission, shutdown, GC, interpreter exit and fork; file and write-session cancellation and settling; docs and API reference; added, rewritten, and removed tests. Verdict: FINDINGS (three).Finding 1 (P2, pre-existing client limitation exposed by the docs): a filesystem created in the parent keeps the parent's boto3 client; if a parent thread held, for example, the credential-refresh lock at the fork, a child request that refreshes blocks. The docs promised that the parent's filesystem's
open()works in the child, and the mocked fork test does not reach the client.Verified: only the executors are reset after a fork;
S3Core.clientis the parent's object. Repaired in dbb262c: the docs tell to create a new filesystem in a forked child and give both reasons (the parent's boto3 client, and fsspec's synchronous methods raising). The release note now says only that the files no longer hang on their executor.test_read_in_forked_childkeeps protecting that executor contract with a mocked client.Finding 3 (P3):
TestAioS3File::test_failed_read_frees_other_rangesnow ran the sameS3File._fetch_rangeand pool asTestS3FileSystem::test_failed_read_frees_other_ranges, with the same assertions. Verified by comparing both tests; removed in dbb262c, and the synchronous test keeps the coverage.