A patch upgrade of VMware VCF Operations for Networks (formerly Aria Operations for Networks, vRNI) from 9.1.0 to a 9.1.0.0X00 patch fails at the Perform Component Upgrade subtask.
The stage, precheck, and prepare steps all complete successfully. Only the apply step (networks_apply_upgrade) fails. The full upgrade binary stages from the depot without error, which rules out the depot and the download path.
Failed to execute sudo -u ubuntu /home/ubuntu/build-target/launcher/upgrade-services.sh /tmp/upgrade_infra-base_########.tar.gz /home/ubuntu/build-target/infra-base ubuntu /home/ubuntu/build-target/deployment infra-base ######## /home/ubuntu/build-target/infra-base >> /var/log/arkin/centralized_upgrade.log 2>&1
The lifecycle service retries the apply step roughly every twenty minutes. Each attempt fails identically with a new bundle file name and a new reference code, so the failure is deterministic rather than transient.
On platform node 1, /var/log/arkin/centralized_upgrade.log shows the infra-base upgrade handing off to cinc-solo and exiting non-zero on every node:
Base upgrade components complete, now running upgrade_chefrun.sh ...cinc_role=upgrade_onprem_platform.jsonCheckResult 1 'Fail to upgrade infra-base components'CheckResult 1 'Failed to perform infra-base upgrade'Result: {'platform1': 1, 'platform2': 1, 'platform3': 1}/var/log/arkin/cinc-run.log identifies the failing recipe:
FATAL: Mixlib::ShellOut::ShellCommandFailed: apt_package[purge_old_kernels] (kernel::remove line 124) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '100'
Immediately above that entry, the same log records the kernel state and the package selected for removal. Kernel versions vary by appliance:
INFO: Current Kernel version: 6.8.0-106INFO: All sorted kernel versions: 6.8.0-94, 6.8.0-106, 6.8.0-111INFO: Kernels versions to keep : 6.8.0-106, 6.8.0-111INFO: Kernel versions to purge: 6.8.0-94INFO: Linux kernel metapkg check output: linux-tools-common 5.15.0-118.128INFO: Final list of kernel packages to purge: linux-hwe-6.8-tools-6.8.0-94
The apt transaction that follows expands well beyond the single package named for removal, and ends with a missing package file:
---- Begin output of ["apt-get", "-q", "-y", "purge", "linux-hwe-6.8-tools-6.8.0-94"] ----The following additional packages will be installed:linux-hwe-6.8-tools-6.8.0-111 linux-tools-6.8.0-111-genericlinux-tools-generic-hwe-22.04The following packages will be REMOVED:linux-hwe-6.8-tools-6.8.0-94* linux-tools-6.8.0-94-generic*The following packages will be upgraded:linux-tools-generic-hwe-22.04Err:3 file:/var/cache/apt-cacher-ng/####/main amd64 linux-tools-generic-hwe-22.04 amd64 6.8.0-111.11122.04.122.04.1_amd64.deb (2: No such file or directory)
File not found - /var/cache/apt-cacher-ng/####/pool/main/l/linux-meta-hwe-6.8/linux-tools-generic-hwe-22.04_6.8.0-111.111
The cinc recipe kernel::remove runs during the infra-base stage of the upgrade and purges kernel packages that are no longer needed. On the appliance, the linux-tools-generic-hwe-22.04 metapackage remains installed at the superseded kernel ABI version.
That metapackage depends on the tools package being removed, so apt expands the purge into a larger transaction. The transaction removes the two old tools packages and upgrades linux-tools-generic-hwe-22.04 to the newest installed kernel ABI.
The .deb file for the newer metapackage version is absent from the local apt-cacher-ng cache on the appliance. apt cannot resolve the fetch, exits with code 100, and the cinc run aborts at kernel::remove line 124. upgrade-services.sh then returns non-zero.
The metapackage file is roughly 2 KB. The other two packages in the same transaction fetch from the cache without error, so a single missing file of that size blocks the entire upgrade.
The lifecycle service polls the appliance and relays only the command line it invoked, not the script output. That is why the interface names upgrade-services.sh rather than the package failure underneath it.
Fixed in VCF Operations for Networks 9.1.1.
Purging the linux-tools-generic-hwe-22.04 metapackage removes the dependency that pulls the missing file into the apt transaction. The kernel::remove recipe then completes and the upgrade proceeds.
Apply the workaround to every platform node and every collector node.
ubuname -r
dpkg -l | grep linux-toolssudo apt-get -s purge linux-tools-generic-hwe-22.04sudo apt purge -y linux-tools-generic-hwe-22.04If the error persists after following these steps, contact Broadcom Support for further assistance.
Provide the following information when opening a support request with Broadcom for this issue: