Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpuid_boot_test goes out to lunch on Windows Server 2022 guest #793

Open
iximeow opened this issue Oct 17, 2024 · 0 comments
Open

cpuid_boot_test goes out to lunch on Windows Server 2022 guest #793

iximeow opened this issue Oct 17, 2024 · 0 comments
Labels
testing Related to testing and/or the PHD test framework.

Comments

@iximeow
Copy link
Member

iximeow commented Oct 17, 2024

i'm using a freshly-built Windows Server 2022 image, but running PHD more manually than i probably should:

../../target/debug/phd-runner run \
    --propolis-server-cmd ../../target/release/propolis-server \
    --tmp-directory /tmp/phd \
    --artifact-toml-path /rpool/devel/images/windows-server-2022.toml \
    --default-guest-artifact windows \
    --include-filter cpuid_boot_test

where that toml is as follows:

root@helios:/rpool/devel/oxide# cat ../images/windows-server-2022.toml
remote_server_uris = ["https://oxide-omicron-build.s3.amazonaws.com"]

[artifacts.windows]
filename = "windows-server-2022.bin"
[artifacts.windows.kind]
guest_os = "windowsserver2022"
[artifacts.windows.source.local_path]
path = "/rpool/devel/images"

[artifacts.ovmf]
filename = "OVMF_CODE.fd"
kind = "bootrom"
[artifacts.ovmf.source.buildomat]
repo = "oxidecomputer/edk2"
series = "image_debug"
commit = "6d92acf0a22718dd4175d7c64dbcf7aaec3740bd"
sha256 = "29813374b58e3b77fb665f2d95cb3bab37d44fdd2c4fce2a70de9d76a3512a4f"

the cpuid_boot_test runs and then hangs waiting for Computer is booting, SAC started and initialized. it turns out the guest has deviated from the normal boot path with:

Windows failed to start. A recent hardware or software change might be the cause. [...snip...] Status: 0xc0000017

Info: There isn't enough memory available to create a ramdisk device

OK, maybe Windows sees something in the new cpuid bits that requires more than the default 512MiB of memory? i added a cfg.memory_mib(2048); to cpuid_boot_test, rebuilt the tests, and ran again. with this, Windows prints Preparing Automatic Repair Loading files ... and a progress bar, reboots again, and loops six times this way before finally hanging.

i presume something in the cpuid bits has Windows convinced it needs to repair itself, setting up the repair context is what needs the extra memory, and then the final hang is maybe a safeguard against a bootloop trying to get to automatic repair?


since this test tries to cat /proc/cpuinfo anyway the test will certainly, so i'll probably just phd_skip! this one given a Windows guest, but the failure mode still seems noteworthy.

@iximeow iximeow added the testing Related to testing and/or the PHD test framework. label Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing Related to testing and/or the PHD test framework.
Projects
None yet
Development

No branches or pull requests

1 participant