test(e2e): reproduce constrained dev shm failure#522
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
24813bf to
ebc6e41
Compare
7121ef2 to
e1d4fa0
Compare
ebc6e41 to
eac0891
Compare
e1d4fa0 to
1e4ee5f
Compare
82c057f to
aaaf01b
Compare
1e4ee5f to
67ee808
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aaaf01b298
ℹ️ 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".
67ee808 to
669ab52
Compare
aaaf01b to
a64e9b8
Compare
70822fb to
8716c77
Compare
a64e9b8 to
ae72983
Compare
8716c77 to
4e0e749
Compare
ae72983 to
ac080f6
Compare
4119fee to
d949311
Compare
d949311 to
23ada60
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 23ada60b5c
ℹ️ 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".
23ada60 to
7c023af
Compare
Co-authored-by: GPT-5.6 <gpt-5.6@openai.com> Co-authored-by: GPT-5 Codex <codex@openai.com>
7c023af to
3d71f50
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3d71f5099a
ℹ️ 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".
| let Some(original) = statx::try_original() else { | ||
| // Rust's standard library interprets ENOSYS from its statx availability | ||
| // probe as unsupported and falls back to stat64. | ||
| // SAFETY: __errno_location returns the calling thread's errno storage on Linux. | ||
| unsafe { *libc::__errno_location() = libc::ENOSYS }; | ||
| return -1; |
There was a problem hiding this comment.
Fall back to the raw syscall when libc lacks statx
On Linux systems whose libc does not export statx (for example older glibc targets), this LD_PRELOAD library still exports statx, so code that weak-links or dlsyms statx will call this shim instead of taking its own SYS_statx fallback. Returning ENOSYS here changes those traced tasks from a working kernel statx call into a failure; please invoke the raw SYS_statx path (and record the access) when RTLD_NEXT has no statx rather than exposing a stub.
Useful? React with 👍 / 👎.

Motivation
Capture issue #353 as a deterministic Linux-glibc E2E failure before changing the shared-memory implementation.
Background
The current Linux backend creates a sparse 4 GiB POSIX shared-memory object under
/dev/shm. On constrained container or Kubernetes tmpfs mounts, touching pages beyond available capacity raisesSIGBUS. The reproduction needs to exceed one native page with very few accesses and prove that the eventual fix changes the backing store rather than weakening the test.Changes
vtt small_dev_shm, which enters private user and mount namespaces and mounts a one-page tmpfs at/dev/shm.vtt stat_long_filename <count>without changing the existingstat-fileutility.std::fs::metadatawith a 1 MiB pathname so fspy serializes a frame larger than any supported base page before the kernel returnsENAMETOOLONG.statxsymbol so Rust metadata calls travel through fspy's normal preload path.SIGBUSwhile keeping the snapshot test itself green.