oxidecomputer / oxidecomputer/propolis

PHD behaves somewhat badly with regards to stdout when SIGINTed

Open
#1,040 0 comments 0 reactions 1 assignee View on GitHub

@hawkw is already working on this.

Since Feb 6, 2026.

bug testing
Dominant language
Rust
Stars
270
Forks
42
Avg merge
4d 5h
Merged PRs (30d)
6

Description

this basically doesn't actually matter at all, but because PHD cleans up after itself asynchronously when SIGINT'd, the terminal will print the prompt while PHD is still alive and prints some more long lines. this bothers me because i'm a huge dweeb but doesn't actually matter at all because you can just whack a couple of times and get your prompt back. nonetheless, i hate it.

eliza@atrium ~/propolis $ cargo xtask phd run --no-crucible --no-base-propolis
   Compiling propolis-server
    Finished propolis-server dev [unoptimized + debuginfo] in 0.69s
       Found existing artifact directory `target/phd/artifacts`
     Created temp directory `target/phd/tmp/1770405869`
       Found artifacts.toml at `phd-tests/artifacts.toml`
   Compiling phd-runner
    Finished phd-runner dev [unoptimized + debuginfo] in 19.96s
    Skipping Crucible tests
    Skipping migration-from-base tests
     Running pfexec /home/eliza/propolis/target/x86_64-unknown-illumos/debug/phd-runner run \
        --propolis-server-cmd target/x86_64-unknown-illumos/debug/propolis-server \
        --artifact-toml-path phd-tests/artifacts.toml \
        --artifact-directory target/phd/artifacts \
        --tmp-directory target/phd/tmp/1770405869
2026-02-06T19:24:50.025469Z  INFO phd_runner: 36: runner_args=ProcessArgs { command: Run(RunOptions { propolis_server_cmd: "target/x86_64-unknown-illumos/debug/propolis-server", base_propolis_branch: None, base_propolis_commit: None, base_propolis_cmd: None, crucible_downstairs_cmd: None, crucible_downstairs_commit: None, tmp_directory: "target/phd/tmp/1770405869", artifact_directory: Some("target/phd/artifacts"), output_mode: TmpFile, default_guest_cpus: 2, default_guest_memory_mib: 512, artifact_toml_path: "phd-tests/artifacts.toml", default_guest_artifact: "alpine", default_bootrom_artifact: "ovmf", include_filter: [], exclude_filter: [], max_buildomat_wait_secs: 1200 }), disable_ansi: false, emit_bunyan: false }

 ...

2026-02-06T19:26:27.675354Z  INFO test{path=phd_tests::stats::instance_vcpu_stats}:wait_for_serial_output{vm="instance_vcpu_stats" vm_id=3d50e9ec-e469-45af-b400-3ec3aa617036}: phd_framework::test_vm: 804: Waiting for output on serial console target="localhost:~#" timeout_duration=Explicit(300s)
^X^C2026-02-06T19:26:37.098790Z  WARN phd_runner::execute: 193: SIGINT received, sending shutdown signal to tests
2026-02-06T19:26:37.099371Z  INFO phd_runner::execute: 130: test phd_tests::stats::instance_vcpu_stats ... FAILED: test interrupted by SIGINT
Feb 06 19:26:37.099 INFO beginning graceful shutdown, local_addr: [::1]:50667, component: phd-oximeter-consumer

eliza@atrium ~/propolis $ 2026-02-06T19:26:38.013335Z  INFO phd_runner::execute: 86: Test run interrupted by SIGINT

failures:
    phd_tests::stats::instance_vcpu_stats

test result: FAILED. 5 passed; 1 failed; 0 skipped; 41 not run; finished in 107.98s


eliza@atrium ~/propolis $
eliza@atrium ~/propolis $

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.