Repository navigation
Handle guest OOM during syscall copies - #5
Merged
Merged
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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.