Skip to content

test(e2e): keep lifecycle sandboxes running - #3128

Merged
elezar merged 3 commits into
mainfrom
codex/test-durable-e2e-mains
Sep 2, 2026
Merged

test(e2e): keep lifecycle sandboxes running#3128
elezar merged 3 commits into
mainfrom
codex/test-durable-e2e-mains

Conversation

@elezar

@elezar elezar commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

Align lifecycle-related E2E tests with the canonical-main, retained terminal-state, and ephemeral cleanup contracts. Use explicit durable mains where tests need a running sandbox, and make tests exercise the intended create semantics instead of silently converting lifecycle flags into scratch-plus-exec behavior.

Related Issue

No issue required: focused test maintenance correcting E2E lifecycle assumptions.

The production stale-exit race exposed by the stop/start test is addressed separately by #3132.

Changes

  • Start durable canonical mains before stop/start, stopped-delete, VM overlay, and provider auto-create assertions.
  • Assert stop/start launches a fresh canonical main instance while preserving workspace data.
  • Cover detached successful and failing main processes reaching retained Completed and Error states.
  • Cover nonzero --no-keep exit propagation followed by automatic deletion.
  • Make reconnect coverage prove stdin ownership transfer instead of relying on a fixed delay.
  • Run GPU workloads as canonical create-time mains and verify retained phase and exit status.
  • Reject --no-keep in the persistent scratch helper and remove misleading callers.
  • Keep policy-advisor sandboxes alive, separate upload from execution, and poll for mechanistic output.

Testing

  • mise run pre-commit passes
  • cargo test --manifest-path e2e/rust/Cargo.toml --all-features --no-run
  • Affected E2E targets pass strict Clippy
  • mise run e2e:mechanistic-smoke
  • Focused Docker lifecycle E2E: all new cases pass; the existing stop/start case reproduces the stale ContainerExited race fixed by fix(compute): fence stale container exits during start #3132
  • GPU workload E2E not run locally because a GPU is required

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

@elezar elezar added the test:e2e Requires end-to-end coverage label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Label test:e2e applied for 9330f6f. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

@elezar
elezar force-pushed the codex/test-durable-e2e-mains branch from 9330f6f to 955f866 Compare September 2, 2026 13:40
Signed-off-by: Evan Lezar <elezar@nvidia.com>
@elezar
elezar force-pushed the codex/test-durable-e2e-mains branch from 955f866 to dd38f93 Compare September 2, 2026 14:05
@elezar
elezar enabled auto-merge September 2, 2026 14:11
drew added 2 commits September 2, 2026 08:38
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
@elezar
elezar added this pull request to the merge queue Sep 2, 2026
Merged via the queue into main with commit 1e1a8b5 Sep 2, 2026
75 checks passed
@elezar
elezar deleted the codex/test-durable-e2e-mains branch September 2, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants