A failed install says whether the package database is stale, how old it is, and what fixes it (hq issue 205) #79

Merged
mesh-admin merged 1 commits from fix/issue-205 into main 2026-10-03 09:44:43 +00:00
Contributor

The host's half of hq issue 205. Root cause of the unreadable failure: the existing stale-index classifier (from issue 002) read the command's stdout only, and pacman writes every failed retrieving file … 404 to stderr, which the runner folds into the error — so the control node's ten-week-old database fell through to the generic message. InstallPackage now classifies over stdout and the error text: a stale database (404s across mirrors, or a failed signature) is named with its age from the sync files' mtime and the remedy (a full upgrade by the operator; the host does not sync one package because that is a partial upgrade); a genuine mirror outage with a fresh database is named as such. Tests use the exact pacman output from the issue.

Not in here: reporting the database age as a machine fact. The host's report carries no machine facts and adding one is a protocol change on both sides; it belongs with HQ's answer to the issue's first question (who keeps the machine current).

The host's half of hq issue 205. Root cause of the unreadable failure: the existing stale-index classifier (from issue 002) read the command's stdout only, and pacman writes every `failed retrieving file … 404` to stderr, which the runner folds into the error — so the control node's ten-week-old database fell through to the generic message. `InstallPackage` now classifies over stdout and the error text: a stale database (404s across mirrors, or a failed signature) is named with its age from the sync files' mtime and the remedy (a full upgrade by the operator; the host does not sync one package because that is a partial upgrade); a genuine mirror outage with a fresh database is named as such. Tests use the exact pacman output from the issue. Not in here: reporting the database age as a machine fact. The host's report carries no machine facts and adding one is a protocol change on both sides; it belongs with HQ's answer to the issue's first question (who keeps the machine current).
mesh-admin added 1 commit 2026-10-03 01:55:11 +00:00
pacman writes its errors to stderr, which the runner folds into the error rather than the output;
the stale-index classifier read the output alone and never saw a single 'failed retrieving file',
so a ten-week-old database on the control node reported as a wall of 404s from the mirrors. The
classifier now reads everything pacman said, knows a failed signature as the same staleness, tells a
mirror outage with a fresh database apart from it, and names the database's date and age beside the
remedy: a full upgrade by the operator, never a one-package sync, which on this distribution is a
partial upgrade. Whose job keeping the database current is stays issue 205's question.
mesh-admin merged commit 09614d94c8 into main 2026-10-03 09:44:43 +00:00
mesh-admin deleted branch fix/issue-205 2026-10-03 09:44:44 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#79