fix: accept proven loader reservations in profiler preflight
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 423
- Forks
- 53
- Avg merge
- 20h 26m
- Merged PRs (30d)
- 310
Description
Row: BACKEND-GATE-ROCM-SGLANG
The #3076 controller guard rejects legitimate ELF loader reservation pages at candidate c9ae31fb5e7511b48c54f0f4745dd76fcea11b5b.
Owning spec: .agents/specs/strix-qwen3-4b-c4-performance.md, approved controller-preflight supplement.
Evidence
Strix job dba7164c-bf1f-4a6e-8194-d0e03404fc9d completed Qwen3-4B c4 warmup, then the actual controller preflight rejected unaccounted mapped load instance. No attachment occurred. Model/engine binding checks passed before and after, with identical digest 29f2fe4ecd461b71038ea7e0f79cce4c2ae6ae151f19b068e97ccad9c6b0c126.
The SDK has a file-backed ---p reservation at relative [0x78c000,0x78d000), between its page-rounded RO and RW PT_LOAD segments. The guard currently requires every mapping to fit within one PT_LOAD. All recorded registration mappings satisfy that rule; the SDK reservation deterministically does not. The generic rejection message does not independently identify which constructor emitted it.
A CPU-only single-dlopen fixture linked with -Wl,--build-id,-z,max-page-size=0x200000 reproduces the same rejection through the unchanged public preflight entry at exact c9, with zero forbidden operations. Evidence under the campaign NAS directory: controller-preflight-c9.wLC4Iu/cpu-gap-diagnostic-c9.json, SHA256 986e9bb30543f487dd38dd5ab9b1dc370e83b7ab6272f5e1468fd615a8cd540b.
Loader mechanism reference: glibc2.39 elf/dl-map-segments.h:83-122 reserves an entire shared-object span and marks excess inter-segment space PROT_NONE. This reference is not a claim about the worker's exact glibc revision.
Required repair
Represent strictly bounded loader reservation gaps separately from required segment bytes. Preserve matching backing identity, unique validated load bias, exact reservation offsets, no-access permissions, complete segment coverage, executable symbol checks, and revalidation. Do not broadly ignore PROT_NONE mappings.
Port the CPU reproduction into a red-first public-entry regression. Mutate permissions, gap bounds, offsets, and identity; retain extra-instance and missing-code-page rejection. Fresh review, full gates, and a real Strix preflight are required.
SDK/tool compatibility, attachment-shim readiness, adapter teardown, and accepted throughput remain separate obligations.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .agents/specs/strix-qwen3-4b-c4-performance.md and the unchanged public preflight entry at candidate c9ae31fb5e7511b48c54f0f4745dd76fcea11b5b. Reproduce the failure using controller-preflight-c9.wLC4Iu/cpu-gap-diagnostic-c9.json, then add the requested red-first regression and validation coverage. Done means bounded loader reservations are accepted without broadly ignoring PROT_NONE mappings, while the listed invalid cases remain rejected and the full gates plus Strix preflight pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100