Pre-existing test failures on dev block verify fast #275

Open
opened 2026-10-31 18:20:10 +00:00 by kayg · 6 comments
Owner

Continuation of J25. These failures reproduce on clean origin/dev and block scripts/verify fast.

Scope:

  • Reproduce and classify the SSH streaming failure in crates/plugins/ssh/tests/install/streaming.rs on aarch64 and x86.
  • Reproduce the two apps/tracer Bun reconcile failures in full-suite order, before and after the candidate cleanup in session-hooks.test.ts.
  • Confirm whether the SSH failure is only a test timing assumption or a stall in streaming staging/zstd, and fix the source of the failure.
  • Run the targeted regressions and scripts/verify fast on both assigned Linux VMs.

Evidence:

The AF_UNIX 108-byte socket-path fixture is owned by J21 on fix-fixture-socket-path and is out of scope here. Do not close this issue.

Continuation of J25. These failures reproduce on clean origin/dev and block scripts/verify fast. Scope: - Reproduce and classify the SSH streaming failure in crates/plugins/ssh/tests/install/streaming.rs on aarch64 and x86. - Reproduce the two apps/tracer Bun reconcile failures in full-suite order, before and after the candidate cleanup in session-hooks.test.ts. - Confirm whether the SSH failure is only a test timing assumption or a stall in streaming staging/zstd, and fix the source of the failure. - Run the targeted regressions and scripts/verify fast on both assigned Linux VMs. Evidence: - #264 J1 report: https://git.kayg.org/kayg/infraternal/issues/264#issuecomment-70923 - #264 J2 full gate and attachment: https://git.kayg.org/attachments/ac0659e1-afd1-43d3-8b0f-ab5efcbee461 The AF_UNIX 108-byte socket-path fixture is owned by J21 on fix-fixture-socket-path and is out of scope here. Do not close this issue.
Author
Owner

J25b started. Branch: fix-dev-test-failures. Base: origin/dev ec7b10111e. Existing J25 changes are uncommitted in the supplied worktree. I’m reproducing both reported failures on clean origin/dev first, then comparing the candidate in full-suite order on infraternal-dev-02-std (aarch64) and infraternal-dev-01-compute01 (x86). I’ll keep J21’s socket-path fixture change out of this branch.

J25b started. Branch: fix-dev-test-failures. Base: origin/dev ec7b10111e97a368d13becfca7eb3ac3df0195f6. Existing J25 changes are uncommitted in the supplied worktree. I’m reproducing both reported failures on clean origin/dev first, then comparing the candidate in full-suite order on infraternal-dev-02-std (aarch64) and infraternal-dev-01-compute01 (x86). I’ll keep J21’s socket-path fixture change out of this branch.
Author
Owner

Gate prerequisite finding: the local fix-fixture-socket-path ref is still at 42ab330358, one commit behind origin/dev, and its separate worktree has uncommitted changes across the fixture and multiple test files. There is no J21 commit available to cherry-pick. I will leave that worktree and change untouched; final gate runs will use the documented short INFRATERAL_TEST_STATE_ROOT and INFRATERAL_AGENT_TEST_STATE_ROOT overrides.

Gate prerequisite finding: the local `fix-fixture-socket-path` ref is still at 42ab330358eb06d47acade8d0f2c35b9225af74b, one commit behind origin/dev, and its separate worktree has uncommitted changes across the fixture and multiple test files. There is no J21 commit available to cherry-pick. I will leave that worktree and change untouched; final gate runs will use the documented short `INFRATERAL_TEST_STATE_ROOT` and `INFRATERAL_AGENT_TEST_STATE_ROOT` overrides.
Author
Owner

Status: the clean-origin/dev SSH regression commands are still waiting in each VM's build-slot queue (all 3 aarch64 slots and all 4 x86 slots were busy at launch). Both SSH sessions remain reachable; no test result is claimed yet. I’m keeping the baseline first and will continue as slots free.

Status: the clean-origin/dev SSH regression commands are still waiting in each VM's build-slot queue (all 3 aarch64 slots and all 4 x86 slots were busy at launch). Both SSH sessions remain reachable; no test result is claimed yet. I’m keeping the baseline first and will continue as slots free.
Author
Owner

Finding: the proposed afterAll(() => mock.restore()) cleanup does not undo Bun mock.module() overrides. The VM dev shell reports Bun 1.4.2, and Bun's current mocks documentation says mock.restore() does not reset those overrides: https://bun.com/docs/test/mocks.md#restore-all-mocks . I have not changed the candidate yet; I’m verifying the failure and testing a runner-level isolation fix in the same suite order.

Finding: the proposed `afterAll(() => mock.restore())` cleanup does not undo Bun `mock.module()` overrides. The VM dev shell reports Bun 1.4.2, and Bun's current mocks documentation says `mock.restore()` does not reset those overrides: https://bun.com/docs/test/mocks.md#restore-all-mocks . I have not changed the candidate yet; I’m verifying the failure and testing a runner-level isolation fix in the same suite order.
Author
Owner

Finding on clean origin/dev ec7b10111 (aarch64): the targeted streaming::decoded_image_and_hash_advance_before_the_transfer_tail_is_released test fails after 10.10 s with the original diagnostic hashed=true staged_bytes=Ok(552579). That is the fixture's fixed 10 s deadline; the hash observer and staging file both advanced before it fired, while the existing Rust timeout is 30 s. This points to the test timing assumption, pending the candidate run that must complete the same real pipeline. The first run also warned that my requested native fixture root exceeded the fixture's 26-byte limit and fell back to its short per-process root; subsequent commands use a 24-byte root to avoid that warning.

Finding on clean origin/dev ec7b10111 (aarch64): the targeted `streaming::decoded_image_and_hash_advance_before_the_transfer_tail_is_released` test fails after 10.10 s with the original diagnostic `hashed=true staged_bytes=Ok(552579)`. That is the fixture's fixed 10 s deadline; the hash observer and staging file both advanced before it fired, while the existing Rust timeout is 30 s. This points to the test timing assumption, pending the candidate run that must complete the same real pipeline. The first run also warned that my requested native fixture root exceeded the fixture's 26-byte limit and fell back to its short per-process root; subsequent commands use a 24-byte root to avoid that warning.
Author
Owner

Finding on clean origin/dev ec7b10111 (aarch64): the full TypeScript fast-gate command reproduces exactly 361 pass / 2 fail across 60 files. Both reconcile failures originate at groups-handle.ts:21 because loadGroups() receives onDemand() from the earlier session-hooks.test.ts mock.module("../../on-demand", …) override, which rejects with Error: chunk; the stack points back to session-hooks.test.ts:9. This verifies cross-file module-mock leakage as the cause. Bun 1.4.2 documents --isolate as fresh per-file globals/module registries. The candidate's mock.restore() is not sufficient and will be replaced with the gate's built-in file isolation.

Finding on clean origin/dev ec7b10111 (aarch64): the full TypeScript fast-gate command reproduces exactly 361 pass / 2 fail across 60 files. Both reconcile failures originate at `groups-handle.ts:21` because `loadGroups()` receives `onDemand()` from the earlier `session-hooks.test.ts` `mock.module("../../on-demand", …)` override, which rejects with `Error: chunk`; the stack points back to `session-hooks.test.ts:9`. This verifies cross-file module-mock leakage as the cause. Bun 1.4.2 documents `--isolate` as fresh per-file globals/module registries. The candidate's `mock.restore()` is not sufficient and will be replaced with the gate's built-in file isolation.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#275
No description provided.