e2e/staging post-mortem: 4 red nightlies (apt-daily contention) + a stale-fingerprint frankenbuild that faked a d2m regression #123
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dark/nether-voicebridge#123
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?
Post-mortem of two intertwined testing-infrastructure failures found while gating v0.3.0. No shipped code was ever wrong; both were environmental.
1. Every 06:00 nightly from 07-11 through 07-14 was red — apt-daily-upgrade contention
Manually-dispatched e2e runs passed all four days while the crons failed. The runner host's
apt-daily-upgrade.timerfires ~06:00–07:00 UTC (verified: 06:16/06:56 on 07-14) and its dpkg/IO load garbles the audio-oracle timing — the same contention class thelive-hostconcurrency group fixed for CI builds, from a source no concurrency group can see. Fix (shipped in the 0.3.0 release commit): nightly moved to 08:30 UTC, clear of that window and of mautrix's 04:15 backup. Watch the first few 08:30 runs to confirm green.2. A staging "regression" that was a stale-fingerprint frankenbuild
While validating the 0.3.0 candidate,
audio_d2m_unencfailed 3/3 on staging with a striking signature: SSRC mapped,speaking=1, frames decoding at full shape with zero errors — but pure-silence PCM (rms_db=-96.0). Bisect:bin-109target/git archive, touched mtimesSource diff between the trees: nothing but cosmetic version strings — the failing binary's own strings confirmed it contained the expected code. Conclusion: the long-lived staging
target/(shared across tree variants, with repeatedtouch-based rebuild forcing) produced a mixed-vintage link — stale objects + new objects → UB in the audio path → silent PCM. A false fail; the same mechanism could in principle produce subtler wrongness.Remediations applied:
git archiveextract; old tree+target quarantined at/opt/nvb-staging/src109-quarantine(delete after a week);target/for the new tree, fingerprints purged.Standing rules going forward (also in operator memory):
Correction (2026-07-19): the 08:30 cron move did NOT fix the nightly reds, and contention was never the cause. Nightlies stayed red 07-15…07-19 at 08:30. Full triage in #124: the failures reproduce deterministically on a QUIET host (load ~2) — a real multi-channel/encrypted/recovery audio failure cluster, not load. Keep the cron at 08:30 (harmless, still off the apt window) but the post-mortems apt-contention explanation was wrong. The red-nightly ops-room alert proposed in Step 4 is now clearly justified — this cluster went unnoticed for 8 days.