mixed_load_ceilings fails intermittently on the nightly at ladder x64 with host.memory_ceiling_exceeded, on a tree that passes the same job hours earlier #288
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#288
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while verifying the #276 merge. Pre-existing, not introduced by it — see the identical-trees proof below.
The failure
Nightly run 856 (
bea410f, scheduled, 03:01) — jobcorpus-scale, testmixed_load_ceilingsincrates/plugin-host/tests/mixed_load_bench.rs:The IPC-at-size ladder crosses the ceiling only at its last rung:
x32produces facts;x64— 31 MB of source, 5.5 M nodes, an 88 MB stream — does not. Notereplydrops from 71 to 5, i.e. the refusal, not a short answer.It is NOT a code regression, and this is provable
The same job passed on run 851 at 14:00 and again on run 857.
Run 851 ran
7a5fd70; run 856 ranbea410f.bea410fis the merge of7a5fd70into a master whose head was that commit's own parent, so:Byte-identical trees passed and failed. No change to the tree can explain it.
Frequency — one verified, one suspected
Two of the last 14 scheduled
ci.ymlruns failed, both aborting at a near-identical duration:Run 725 could not be verified. Its logs return 404 on every job index and it is past the
/actions/tasksfeed window, so the only thing linking it is the 18-second-similar early-abort duration. That is a hint, not evidence, and it is recorded here as such rather than counted as a second occurrence. If someone has a way to reach logs that old, it is worth one look — two confirmed occurrences would change this from "seen once" to a rate.Why a host-conditions hypothesis is worth testing first
mixed_load_ceilingsis#[ignore]d ("reads ~/.cache/cosi-corpus and produces timings"), so it runs only on the nightly and onworkflow_dispatch— the two configurations where the three nightly jobs run concurrently with everything else.The ceiling it trips is a host memory ceiling on the largest rung of a doubling ladder. A rung that needs ~88 MB of stream buffer either fits or does not depending on what else the box is doing at 03:01. This file's own history shows the area is sensitive:
eb92cf6("an OOM kill no longer pushes a blameless package toward quarantine") and0fa644b("a 25% flake was a test asserting inside a window with no evidence").This is NOT a claim that the ceiling is wrong. It is that nothing in the failure output distinguishes:
Those want different fixes and the current message cannot tell them apart.
What would close this
host.memory_ceiling_exceededshould carry what was asked for, what the ceiling was, and what the host had available at that moment. A derived value cannot currently tell a contention artifact from a real over-budget request.ladder x64belongs in a gate that runs under contention. It is the only rung that fails and it is 2× the largest rung that passes. Either it is load-bearing and needs a reserve (cf. #285's shape), or it is a measurement that should not gate a nightly.Scope note
Deliberately not "raise the memory ceiling". The ceiling may be exactly right; what is missing is the evidence to tell which of the two cases above produced the refusal.
🤖 Generated with Claude Code
https://claude.ai/code/session_0126PDDLB4wNHxKXvWM1VNmu