Preserve per-attempt stop reasons and diagnostic links for interrupted Firecracker jobs #13
Loading…
Add table
Add a link
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?
A long-running Fiach CI attempt stopped without enough information in Forgejo or the retained guest log to explain why. Debugging required manually correlating Forgejo API timestamps, controller journals, transient systemd units, and Firecracker directories. Please make that correlation and the terminal reason available directly in a durable per-attempt diagnostic record.
Observed attempt
Timeline (UTC):
Cancelled { job_id: JobId("forgejo-17110"), task_id: "17110" }.The guest serial log ends with
{"protocol_version":2,"job_id":"forgejo-17110","event":"workload_ready"}. It contains no guest completion report or OOM evidence in the supplied tail. Host systemd accounting reports 11h42m25.636s CPU, 3h7m6.885s elapsed, 6.2G peak memory, 1.1T disk reads, and 22.5G writes. These are host-side VM accounting values, not measurements of the compiler or guest working set.Forgejo's step metadata is inconsistent with delivered output: setup consumes the full duration, while checkout and subsequent steps all show failure at 0s, despite the log showing successful checkout and entry into Rust checks.
No newer Fiach run superseded this attempt when checked. Forgejo's default ENDLESS_TASK_TIMEOUT is 3h and periodic cleanup marks overlong tasks failed, which fits the timing. However, the deployed setting and server-side reason were not verified: timeout is a strong hypothesis, not a confirmed cause. Local Rith source also maps a remote terminal failure to a
Cancelledpoll outcome, so that outcome alone does not identify manual cancellation. Nothing here establishes an OOM or the cause of the large disk-read volume.Requested diagnostics
Acceptance criteria
Related: #9 covers resource measurements and sizing; closed #3 covers log backpressure and step attribution; closed #5 covers missing remote logs and misleading step statuses. This report focuses on end-to-end failure attribution and diagnostic retention for an interrupted long-running attempt. It does not assert those earlier fixes regressed or that Rith caused the underlying slow build.