Skip to content

fix(offload-test): a dead stage's marker keeps the platform's own incident id - #133

Merged
debuggingfuture merged 1 commit into
mainfrom
fix/marker-keeps-the-platform-reference
Aug 15, 2026
Merged

fix(offload-test): a dead stage's marker keeps the platform's own incident id#133
debuggingfuture merged 1 commit into
mainfrom
fix/marker-keeps-the-platform-reference

Conversation

@debuggingfuture

Copy link
Copy Markdown
Member

Problem & Insight

A dying container reports:

ExecFailed: exec failed (exit -1): internal error; reference = aggq3f5m407e2vb2ht76l2vf

The staged marker recorded stage=<label> error=ExecFailed elapsedMs=<n> — the class, and not the reference. That is backwards. The class is the half a consumer can already infer from the fact that their stage died; the reference is the only half that identifies the incident to the platform's operator, and it was being thrown away at the one moment someone needs it.

It matters now because the resource explanations are gone. On the consumer whose gate motivated staged mode, with the per-stage memory probe running:

^ Quantity Measured
1 Heaviest stage's memory peak 2.2 GiB of 11.9 GiB, across its full 2176s
2 Disk at the same point 3.6 GB build, 8.4 GB free
3 Death points in that stage 137s, 647s, 1284s
4 Successes in that stage 2128s, 2176s

Nothing is scarce, and no duration is safe. Whatever is killing these containers is not the workload — which makes the next question one only the platform can answer, and answering it needs the id.

Take

The marker carries exit=<n> and reference=<id> when the failure supplied them.

Extracted, not interpolated. The marker is shell-quoted into a printf '%s\n' '<line>', so free vendor text could close the quote and change what the container executes. A [A-Za-z0-9_-]{1,64} reference and a signed integer cannot. The test pins that charset rather than trusting the shape of today's message.

Key actions

  • A test driving the real ExecFailed text: the marker keeps the reference, and whatever lands after reference= matches ^[A-Za-z0-9_-]+$
  • Full suite green — 2243 tests, typecheck, oxlint

…ident id

`ExecFailed: exec failed (exit -1): internal error; reference =
aggq3f5m407e2vb2ht76l2vf` is what a dying container reports. The marker recorded
the CLASS and dropped the reference — which is backwards: the class is the half a
consumer can already infer from the fact that their stage died, and the reference
is the only half that identifies the incident to the platform's operator.

It matters now because the resource explanations are gone. On the consumer that
motivated the staging work, the heaviest stage peaks at 2.2 GiB of 11.9 GiB with
8.4 GB of disk to spare, and dies at 137s, 647s and 1284s against successes at
2128s and 2176s. Nothing is scarce and no duration is safe, so the next question
is one only the platform can answer — and answering it needs the id.

EXTRACTED rather than interpolated. The marker is shell-quoted into a
`printf '%s\n' '<line>'`, so free vendor text could close the quote; a
`[A-Za-z0-9_-]` reference and a signed integer exit code cannot. The test pins
that charset rather than trusting the shape of today's message.

@flaredispatch-fractalboxdev flaredispatch-fractalboxdev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI code review — ✅ Approve

Risk tier: lite · 0 critical · 0 warnings · 0 suggestions

Reviewers: security 0 · code-quality 0 · performance 0 · documentation 0

No findings.

📋 View full logs & reviewed diff ↗

@debuggingfuture
debuggingfuture merged commit 3c18ed5 into main Aug 15, 2026
5 checks passed
@debuggingfuture
debuggingfuture deleted the fix/marker-keeps-the-platform-reference branch August 15, 2026 13:32
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