[BUG] Development physical directory CI probe fails after catalog and consent probes pass #35

Open
opened 2026-09-12 22:26:22 +02:00 by erikinkinen · 0 comments
Owner

Summary

The development image's physical native-directory probe fails after all 486 VM catalog scenarios and the preceding interactive/consent probes pass. The runner reports physical injector exit 1 with composed VM-command exit 0. The failed directory command, consent observation or cleanup operation is unknown from the available log.

Reproduction

Observed in Integration PR run 1580 at 74f16acc4e0dbac80b437b0f13edcb9b213409d8, main job 19515 attempt 1. After building its selected development image, the workflow invokes:

./tests/native-directory-vm.sh physical out/appliance/erix-dev.img

This selects the native-directory profile. Its 14 command lines cover short/all/long listings, explicit trusted consent and denial, changing directories, successful and failed cwd changes, and a final completion sentinel. Each command requires its own status, output and later prompt. This observation has not been replayed; frequency and a minimal deterministic trigger are not established.

Expected and actual behavior

Expected: every directory operation and selected consent/denial completes with its exact output/status and fresh prompt; the final completion witness permits the remaining CI probes to run.

Actual: the invocation starts at 2026-09-12 20:15:43.703 UTC and reports failure at 20:16:28.687 UTC:

vm diagnostic: stage=physical-input runner_exit=1 vm_exit=0 expected_vm_exit=0 physical_input_exit=1 serial_input_exit=unknown physical_cleanup_requested=0

The wrapper returns 1 before its final milestone assertions. The physical injector was observed with exit 1 without requested cleanup. The composed watchdog/timeout/QEMU command returned 0; this is not independently recovered QEMU exit evidence or proof that guest commands succeeded. Input cleanup can occur after either successful commands or a preceding exception. The log does not identify the failed command or establish a guest, prompt, transport or cleanup cause.

Environment and identity

  • Integration 74f16acc4e0dbac80b437b0f13edcb9b213409d8, PR event, run 1580/API9072, main job 19515 attempt 1; terminal failure at 20:17:29 UTC.
  • Workflow-built development image and a private probe copy. Original workflow/probe sources and component-resolution output remain retained; the failed invocation's image digest is not recovered from the job log.
  • Source-selected x86-64 QEMU, one vCPU, physical keyboard input, 120-second VM limit, 15-second progress-stall limit and 10-second command limit. Unreported effective accelerator, firmware and tool bytes are not inferred from local installations.
  • The wrapper requires the packaged console font checksum before starting the interactive profile. The source-selected font SHA-256 is 662eb86fc1ea89635e4bba8413590b79eb714ade5a2b5a5aa3dc5cf5f53a4463.
  • No introducing revision or exact-source last-known-working comparison is established. The same revision's push run fails an earlier release repeated-interrupt gate, which does not establish a common cause.

Evidence and prior checks

The complete main log is 13,141,904 bytes, SHA-256 313b4956715cea70e9f97331677ce3e07cd8e94e6277afb6ca108e445030b4b6. It records 486 distinct real worker-bound scenario passes and passed=486 failed=0 total=486 at 20:05:52.551 UTC. Both canonical image probes, the development native-launch/serial-input checks, all four interactive-lines cases, both single-interrupt cases, both repeated-interrupt cases and all four Powerbox prompt cases pass before this directory failure. Rust and Markdown jobs succeed independently.

All three complete terminal job logs were retained and checked, totaling 13,246,599 bytes. No warning diagnostic was found. Original workflow ordering and 17 source files were checked alongside the raw log records. No artifact catalog was queried or artifact downloaded for this observation; the inner serial/input/QMP evidence and image digest remain unknown from the retained logs. No claim that unqueried artifacts are absent is made.

Tracking

Coordinate through Integration PR #12. This is a distinct observed gate from release repeated-interrupt failure #31, development physical command-line failure #32, and pre-shell startup silence #33. Their causes remain unresolved.

Preserve the failure and recover bounded evidence from the selected directory operation before changing runtime behavior or acceptance rules. The new three-line diagnostic receipt does not apply to this separate profile. No retry, deadline relaxation, skipped assertion or runtime fix is claimed.

## Summary The development image's physical native-directory probe fails after all 486 VM catalog scenarios and the preceding interactive/consent probes pass. The runner reports physical injector exit 1 with composed VM-command exit 0. The failed directory command, consent observation or cleanup operation is unknown from the available log. ## Reproduction Observed in [Integration PR run 1580](https://git.erikinkinen.fi/erix/integration/actions/runs/1580) at `74f16acc4e0dbac80b437b0f13edcb9b213409d8`, main job 19515 attempt 1. After building its selected development image, the workflow invokes: ```sh ./tests/native-directory-vm.sh physical out/appliance/erix-dev.img ``` This selects the `native-directory` profile. Its 14 command lines cover short/all/long listings, explicit trusted consent and denial, changing directories, successful and failed cwd changes, and a final completion sentinel. Each command requires its own status, output and later prompt. This observation has not been replayed; frequency and a minimal deterministic trigger are not established. ## Expected and actual behavior Expected: every directory operation and selected consent/denial completes with its exact output/status and fresh prompt; the final completion witness permits the remaining CI probes to run. Actual: the invocation starts at 2026-09-12 20:15:43.703 UTC and reports failure at 20:16:28.687 UTC: ```text vm diagnostic: stage=physical-input runner_exit=1 vm_exit=0 expected_vm_exit=0 physical_input_exit=1 serial_input_exit=unknown physical_cleanup_requested=0 ``` The wrapper returns 1 before its final milestone assertions. The physical injector was observed with exit 1 without requested cleanup. The composed watchdog/timeout/QEMU command returned 0; this is not independently recovered QEMU exit evidence or proof that guest commands succeeded. Input cleanup can occur after either successful commands or a preceding exception. The log does not identify the failed command or establish a guest, prompt, transport or cleanup cause. ## Environment and identity - Integration `74f16acc4e0dbac80b437b0f13edcb9b213409d8`, PR event, run 1580/API9072, main job 19515 attempt 1; terminal failure at 20:17:29 UTC. - Workflow-built development image and a private probe copy. Original workflow/probe sources and component-resolution output remain retained; the failed invocation's image digest is not recovered from the job log. - Source-selected x86-64 QEMU, one vCPU, physical keyboard input, 120-second VM limit, 15-second progress-stall limit and 10-second command limit. Unreported effective accelerator, firmware and tool bytes are not inferred from local installations. - The wrapper requires the packaged console font checksum before starting the interactive profile. The source-selected font SHA-256 is `662eb86fc1ea89635e4bba8413590b79eb714ade5a2b5a5aa3dc5cf5f53a4463`. - No introducing revision or exact-source last-known-working comparison is established. The same revision's push run fails an earlier release repeated-interrupt gate, which does not establish a common cause. ## Evidence and prior checks The complete main log is 13,141,904 bytes, SHA-256 `313b4956715cea70e9f97331677ce3e07cd8e94e6277afb6ca108e445030b4b6`. It records 486 distinct real worker-bound scenario passes and `passed=486 failed=0 total=486` at 20:05:52.551 UTC. Both canonical image probes, the development native-launch/serial-input checks, all four interactive-lines cases, both single-interrupt cases, both repeated-interrupt cases and all four Powerbox prompt cases pass before this directory failure. Rust and Markdown jobs succeed independently. All three complete terminal job logs were retained and checked, totaling 13,246,599 bytes. No warning diagnostic was found. Original workflow ordering and 17 source files were checked alongside the raw log records. No artifact catalog was queried or artifact downloaded for this observation; the inner serial/input/QMP evidence and image digest remain unknown from the retained logs. No claim that unqueried artifacts are absent is made. ## Tracking Coordinate through [Integration PR #12](https://git.erikinkinen.fi/erix/integration/pulls/12). This is a distinct observed gate from [release repeated-interrupt failure #31](https://git.erikinkinen.fi/erix/integration/issues/31), [development physical command-line failure #32](https://git.erikinkinen.fi/erix/integration/issues/32), and [pre-shell startup silence #33](https://git.erikinkinen.fi/erix/integration/issues/33). Their causes remain unresolved. Preserve the failure and recover bounded evidence from the selected directory operation before changing runtime behavior or acceptance rules. The new three-line diagnostic receipt does not apply to this separate profile. No retry, deadline relaxation, skipped assertion or runtime fix is claimed.
Sign in to join this conversation.
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
erix/integration#35
No description provided.