You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Move AioS3StreamedFile writes onto the multipart write session #1228
Sub-issue of #1211, which records the design decisions. Depends on the session added for S3File.
Use case
AioS3StreamedFile duplicates the part tracking of S3File with its own differences: _discard() only logs an abort failure, _committing guards a queued commit, and __del__ decides from implicit state whether to abort.
Proposed change
Move AioS3StreamedFile onto _S3WriteSession:
Writes await the session's readiness with asyncio.wrap_future; a cancelled task cancels only its own readiness future.
The commit reserves completion with begin_complete() before run_shielded() queues it, replacing _committing; the abort and __del__ use the session state.
The single-request path, abort-failure handling, and state errors match S3File.
Behavior changes are listed in the PR for the 4.2.0 release notes.
Validation plan (if implementing)
The existing AioS3StreamedFile tests, including cancellation, loop shutdown, garbage collection, and one-worker pools.
Tests that a cancellation while the commit is queued does not abort it, and that failed part futures and bodies are released after the error is consumed.
The filesystem integration tests against the CI bucket.
Activity
Bound the session test waits and drop the untestable abort race
Describe why the session sets the reservation and the pending abort f…
Hold the failed part until the commit is queued, and check the positi…
Check the buffer of a refused write, and limit the joined abort to an…