feat: implement OSSFS storage backend in sandbox lifecycle#340
feat: implement OSSFS storage backend in sandbox lifecycle#340Pangjiping merged 11 commits intoalibaba:mainfrom
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a72893a549
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
a72893a to
ce216ac
Compare
|
Please rebase main to resolve pyproject.toml format error |
ce216ac to
c12516d
Compare
aaf4e73 to
25eb4ed
Compare
11e4b44 to
8338c4d
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8338c4d7cb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Implement OSSFS volume support in Docker runtime with mount reference counting. - Add comprehensive validation and unit tests for the new storage backend.
…vior Move Docker OSSFS-specific logic into a dedicated module to reduce branching noise in the core provisioning flow, and align OSSFS request validation with schema-driven constraints and platform support boundaries. This also fixes server pyproject TOML parsing so validation/test tooling can run reliably. Made-with: Cursor
Make OSSFS mount preparation transactional by rolling back already prepared mount keys when a later mount in the same batch fails. Add a regression test to prevent ref-count leaks in multi-volume partial-failure scenarios. Made-with: Cursor
Remove endpoint-derived region/sigv4 auto-injection for OSSFS 1.0 so region semantics stay explicitly controlled by caller options. Add assertions to keep v1 command generation free of implicit region flags. Made-with: Cursor
Install and expose both JDK 8 and JDK 17 in Java E2E so Gradle toolchain resolution does not depend on foojay auto-download in CI. Configure Gradle installation paths explicitly to avoid intermittent Java 8 provisioning failures. Made-with: Cursor
- Widen try/except in _provision_sandbox to cover all post-OSSFS steps (volume binds, sidecar, container creation) so mounts are always released on failure. - Two-pass startup restore: populate OSSFS ref counts for all containers before expiring any, preventing untracked-key skips during cleanup. - Add fallback_mount_keys to _expire_sandbox so vanished containers (404) still release their cached refs. - Retry expiration on transient Docker errors (non-404) with 30s delay, preserving fallback keys and original expiresAt timestamp. - Guard against renew/retry race: revalidate expiration deadline before kill/remove to avoid terminating a renewed sandbox. - Fix cross-platform test stability: pin os.name in OSSFS tests and correct patch paths to ossfs_mixin. Made-with: Cursor
8338c4d to
9b621de
Compare
This PR implements the OSSFS storage backend for the sandbox lifecycle, as detailed in OSEP-0003.
Key features:
ossfsmounting.