[BUG] Release physical native-utility CI probe stalls after earlier input checks pass #38

Open
opened 2026-09-13 02:30:25 +02:00 by erikinkinen · 0 comments
Owner

Summary

The release image's positive file-utility and separate-copy-consent probe over physical input failed in Integration PR run 1584 at 4658ee9fab995eab1812f219971cffd340e1eb70. All 486 VM catalog scenarios and the preceding directory, editor, time and development serial utility probes passed. The runner reported a VM-stall status and requested physical-input cleanup. The active utility command and underlying cause are unknown.

Reproduction

This is one retained CI observation; no new VM rerun was performed. From the workflow's prepared original component graph and build environment, the release image is produced and checked using:

KERNEL_ROOTD_TEST=runtime APPLIANCE_NAME=erix-release RUNTIME_CONFIG_PROFILE=release ./scripts/package-appliance.sh
RUNTIME_CONFIG_PROFILE=release ./scripts/build-disk-image.sh erix-release
./tests/native-utility-vm.sh physical out/appliance/erix-release.img

The exact failing step is Validate release file utilities and separate copy consent through physical input. These commands depend on the workflow's prepared inputs; they are not a claim that the observation has been reproduced independently.

Expected and actual behavior

The 16-command utility probe should complete its literal output/status checks, distinct read/create/write consent checks, expected denial branches and fresh prompts, then return success. Later post-catalog gates should continue.

Instead, the release physical probe started at 23:39:45.5795277 UTC on 2026-09-12. At 23:40:06.5791622 UTC it printed:

stage=vm-stall runner_exit=1 vm_exit=125 expected_vm_exit=0 physical_input_exit=unknown serial_input_exit=unknown physical_cleanup_requested=1

The wrapper then returned 1. vm_exit=125 is the waited composed watchdog/timeout/QEMU command status, not a recovered raw QEMU exit. The physical cleanup request is recorded; the injector's terminal wait result remains unknown in this diagnostic. Neither unknown value establishes injector exit 1 or a particular failed command.

Environment and identity

The exact Integration source was 4658ee9fab995eab1812f219971cffd340e1eb70, PR workflow 1584, main job 19545, attempt 1. The selected path was the release image through emulated physical input. The wrapper copied the source disk privately, selected one vCPU, and retained the unchanged 120-second hard, 15-second serial-progress stall and 10-second per-command limits; the injector receives a 120-second total budget and reserves its existing final second for cleanup, leaving a 119-second operation deadline. The native-utility route does not select the special console-progress supplement.

The utility wrapper, interactive wrapper, input sequence and runner were correlated to original Git bytes. Exact CI image bytes and private guest/input artifacts were not downloaded or independently inspected.

Evidence and prior checks

All three job logs are complete and retained: Rust and Markdown succeeded, while the main integration job failed. The API records terminal failure at 23:41:14 UTC. The complete main log is 13,146,018 bytes, SHA-256 bafd0e82b2e12b956af08088b5d61481e4c19f1559f40ecffc47fe0819316c58.

The catalog contains 486 distinct explicit worker-scoped passed records matched to the original scenario tree; six unrelated host-fixture markers are counted separately. All four directory routes, all four editor routes, both serial time probes, and the preceding development serial native-utility probe passed. The latter completed at 23:39:45.2668488 UTC. Later image-policy, command-timing and terminal-feature gates were not reached.

The retained outer log establishes this failed gate and status ordering. It does not identify a utility command, consent phase, guest output mismatch, last progress marker, or guest/host cause. No source change, threshold relaxation or replay is part of this report.

Tracking

Track this release physical utility observation separately from release repeated-interrupt stall #31, release COM1 directory #36, and release COM1 editor #37. A shared status does not establish a common cause. Coordination remains in Integration PR #12.

The retained issue inventory contains no equivalent native-utility report. Keep this issue open pending source-bound diagnosis and appropriate unchanged-limit validation.

## Summary The release image's positive file-utility and separate-copy-consent probe over physical input failed in [Integration PR run 1584](https://git.erikinkinen.fi/erix/integration/actions/runs/1584) at `4658ee9fab995eab1812f219971cffd340e1eb70`. All 486 VM catalog scenarios and the preceding directory, editor, time and development serial utility probes passed. The runner reported a VM-stall status and requested physical-input cleanup. The active utility command and underlying cause are unknown. ## Reproduction This is one retained CI observation; no new VM rerun was performed. From the workflow's prepared original component graph and build environment, the release image is produced and checked using: ```sh KERNEL_ROOTD_TEST=runtime APPLIANCE_NAME=erix-release RUNTIME_CONFIG_PROFILE=release ./scripts/package-appliance.sh RUNTIME_CONFIG_PROFILE=release ./scripts/build-disk-image.sh erix-release ./tests/native-utility-vm.sh physical out/appliance/erix-release.img ``` The exact failing step is [Validate release file utilities and separate copy consent through physical input](https://git.erikinkinen.fi/erix/integration/src/commit/4658ee9fab995eab1812f219971cffd340e1eb70/.github/workflows/ci.yml#L719). These commands depend on the workflow's prepared inputs; they are not a claim that the observation has been reproduced independently. ## Expected and actual behavior The 16-command utility probe should complete its literal output/status checks, distinct read/create/write consent checks, expected denial branches and fresh prompts, then return success. Later post-catalog gates should continue. Instead, the release physical probe started at 23:39:45.5795277 UTC on 2026-09-12. At 23:40:06.5791622 UTC it printed: ```text stage=vm-stall runner_exit=1 vm_exit=125 expected_vm_exit=0 physical_input_exit=unknown serial_input_exit=unknown physical_cleanup_requested=1 ``` The wrapper then returned 1. `vm_exit=125` is the waited composed watchdog/timeout/QEMU command status, not a recovered raw QEMU exit. The physical cleanup request is recorded; the injector's terminal wait result remains unknown in this diagnostic. Neither unknown value establishes injector exit 1 or a particular failed command. ## Environment and identity The exact Integration source was `4658ee9fab995eab1812f219971cffd340e1eb70`, PR workflow 1584, main job 19545, attempt 1. The selected path was the release image through emulated physical input. The wrapper copied the source disk privately, selected one vCPU, and retained the unchanged 120-second hard, 15-second serial-progress stall and 10-second per-command limits; the injector receives a 120-second total budget and reserves its existing final second for cleanup, leaving a 119-second operation deadline. The native-utility route does not select the special console-progress supplement. The [utility wrapper](https://git.erikinkinen.fi/erix/integration/src/commit/4658ee9fab995eab1812f219971cffd340e1eb70/tests/native-utility-vm.sh), [interactive wrapper](https://git.erikinkinen.fi/erix/integration/src/commit/4658ee9fab995eab1812f219971cffd340e1eb70/tests/interactive-shell-lines-vm.sh), [input sequence](https://git.erikinkinen.fi/erix/integration/src/commit/4658ee9fab995eab1812f219971cffd340e1eb70/scripts/native_utility_input.py) and [runner](https://git.erikinkinen.fi/erix/integration/src/commit/4658ee9fab995eab1812f219971cffd340e1eb70/scripts/run-disk-image-vm.sh) were correlated to original Git bytes. Exact CI image bytes and private guest/input artifacts were not downloaded or independently inspected. ## Evidence and prior checks All three job logs are complete and retained: Rust and Markdown succeeded, while the main integration job failed. The API records terminal failure at 23:41:14 UTC. The complete main log is 13,146,018 bytes, SHA-256 `bafd0e82b2e12b956af08088b5d61481e4c19f1559f40ecffc47fe0819316c58`. The catalog contains 486 distinct explicit worker-scoped passed records matched to the original scenario tree; six unrelated host-fixture markers are counted separately. All four directory routes, all four editor routes, both serial time probes, and the preceding development serial native-utility probe passed. The latter completed at 23:39:45.2668488 UTC. Later image-policy, command-timing and terminal-feature gates were not reached. The retained outer log establishes this failed gate and status ordering. It does not identify a utility command, consent phase, guest output mismatch, last progress marker, or guest/host cause. No source change, threshold relaxation or replay is part of this report. ## Tracking Track this release physical utility observation separately from [release repeated-interrupt stall #31](https://git.erikinkinen.fi/erix/integration/issues/31), [release COM1 directory #36](https://git.erikinkinen.fi/erix/integration/issues/36), and [release COM1 editor #37](https://git.erikinkinen.fi/erix/integration/issues/37). A shared status does not establish a common cause. Coordination remains in [Integration PR #12](https://git.erikinkinen.fi/erix/integration/pulls/12). The retained issue inventory contains no equivalent native-utility report. Keep this issue open pending source-bound diagnosis and appropriate unchanged-limit validation.
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#38
No description provided.