Skip to content

Handle guest OOM during syscall copies - #5

Merged
luke-lombardi merged 1 commit into
masterfrom
codex/guest-memory-io
Oct 10, 2026
Merged

luke-lombardi merged 1 commit into
masterfrom
codex/guest-memory-io

Conversation

@luke-lombardi

@luke-lombardi luke-lombardi commented Oct 10, 2026 •

Copy link
Copy Markdown

Concurrent allocators could exhaust the guest memory budget during a syscall copy and receive EFAULT (“Bad address”) before OOM handling ran. Apply the existing victim selection after releasing MM locks and retry before external I/O, preserving real invalid-pointer errors and unannotated behavior. Checkpoint layout is unchanged.

Validation: MM/kernel Bazel tests pass. Single-range/vector reclamation tests verify unlocked callbacks and exactly one I/O call; both fail without the fix. Native Linux on GT12 returns 137 for both allocating children. The canonical AMD64 build (5cbba1f, SHA512 48f0b12b…) on staging GT12 passes the original 512 MiB OOM and four rounds of two concurrent allocators plus ordinary exec, keeping the same init, process manager and heartbeat; child exits/logs/next exec are preserved. The first fixture attempt coincided with a full gateway outage and failed before OOM testing; the healthy-start retry passes.

@luke-lombardi
luke-lombardi merged commit 3111581 into master Oct 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant