fix(xcat-core): the Ubuntu POWER diskful install never leaves the installer - #7841
Merged
dhilst merged 5 commits intoSep 17, 2026
Merged
Conversation
reg_linux_diskfull_installation_flat fails on ubuntu-22-ppc64le-devel and ubuntu-24-ppc64le-devel in build xcat2#121 of xcat-core-devel-ubuntu-cd. The node answers ping but the case ends on "root@xcat25-cn: Permission denied (publickey,password)" and the node status never leaves powering-on. The serial console shows why: the Subiquity installer starts, runs the early-commands, errors, tars /var/log/installer to port 8080 and reboots. Nine cycles in 75 minutes. The installed system never exists, so the address belongs to the live installer and it refuses the root key. Two causes, both POWER-only. mkinstall picks pre.ubuntu.subiquity, then overwrites that choice with pre.ubuntu.ppc64 for every ppc64 node. That script writes a partman recipe; the early-commands append it to /autoinstall.yaml, which Subiquity then cannot parse. pre.ubuntu.subiquity has a UEFI branch and a BIOS branch and nothing else, so a ppc64el node takes the BIOS branch and is given a bios_grub partition. POWER firmware boots from a PReP partition. debian_install_prescript.t drives the script choice, which mkinstall keeps inline, so it bails out. ubuntu_subiquity_storage.t gains a PReP case; its extracted block asks uname for the machine architecture, which the block does not do yet. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
… by hand ubuntu_subiquity_storage.t rewrites every /tmp/partitionfile redirect in the extracted block into a scratch tree, and bails out unless it rewrote exactly two. The number is the count of firmware branches the script had when the harness was written, so adding a branch stops the test rather than covering it. The guard now counts the branches it found and requires one redirect each, and fails separately if any path escaped the sandbox. It still bails out on a block with fewer than two branches, which would mean the extraction stopped matching. Still red on the PReP case of the previous commit: the block does not ask uname for the machine architecture yet. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
…taller reg_linux_diskfull_installation_flat fails on ubuntu-22-ppc64le-devel and ubuntu-24-ppc64le-devel in build xcat2#121 of xcat-core-devel-ubuntu-cd. The Subiquity installer starts, errors in its early-commands, tars /var/log/installer to port 8080 and reboots, nine times in 75 minutes. No system is ever installed, so the address answers from the live installer and the case ends on "root@xcat25-cn: Permission denied (publickey,password)". mkinstall in xCAT-server/lib/xcat/plugins/debian.pm selected pre.ubuntu.subiquity and then replaced it with pre.ubuntu.ppc64 for every ppc64 node, whichever installer was in use. pre.ubuntu.ppc64 writes a partman recipe, and the early-commands append it to /autoinstall.yaml, which Subiquity cannot parse. pre.ubuntu.subiquity offered a UEFI branch and a BIOS branch, so a ppc64el node took the BIOS branch and was given a bios_grub partition. POWER firmware loads the boot loader from a PReP partition. install_prescript now returns the script from the installer and the architecture together, and the ppc64 script is reached only on the debian-installer path. pre.ubuntu.subiquity gains a PReP branch, taken when uname reports a POWER machine, which flags an 8M first partition prep and makes that partition the grub device. debian_install_prescript.t and the PReP case of ubuntu_subiquity_storage.t fail without these changes. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
…he whole suite debian_install_prescript.t and ubuntu_subiquity_storage.t called BAIL_OUT at eight places where an extraction or a fixture was not what they expected. prove stops every remaining file on a bail-out, so one changed script hides the results of every test that would have run after it. die is just as loud and costs only its own file. Three comments also carried the incident rather than the constraint. The prescript test header named a build number, a cell, a case and the ssh error the node produced nine times; the boot-file test repeated the nodeset message and the media table below it. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
…ads is missing debian_install_prescript.t called plan skip_all when xCAT-server/lib/xcat/plugins/debian.pm was absent, so a checkout that lost the file reported 0 tests and exit 0. A test that cannot fail measures nothing. Die instead, which is what makentp_ntp_deps.t already does for setupntp. With xCAT-server/lib/xcat/plugins/debian.pm moved aside the file now exits 2 and prints "debian.pm not found"; before this change it exited 0 and printed "1..0 # SKIP debian.pm not found". With the file present the test passes either way. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
dhilst
dismissed
viniciusferrao’s stale review
September 17, 2026 14:37
The merge-base changed after approval.
dhilst
enabled auto-merge
September 17, 2026 14:37
auto-merge was automatically disabled
September 17, 2026 14:38
Pull request was closed
dhilst
enabled auto-merge
September 17, 2026 14:38
viniciusferrao
self-requested a review
September 17, 2026 15:37
viniciusferrao
approved these changes
Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
reg_linux_diskfull_installation_flatfails onubuntu-22-ppc64le-develandubuntu-24-ppc64le-devel. The Subiquity installer starts, errors in its early-commands andreboots, nine times in 75 minutes, and the case ends on
Permission denied (publickey,password).mkinstallindebian.pmselectedpre.ubuntu.subiquityand then replaced it withpre.ubuntu.ppc64for every ppc64 node, and that script writes a partman recipe Subiquity cannotparse.
install_prescriptnow decides from the installer and the architecture together, andpre.ubuntu.subiquitygains a PReP branch.debian_install_prescript.tcovers it. The branchstacks on
fix/ci-ubuntu-ppc-boot-files, so open it after that pull request merges.