Patching vCenter from 8.0.2 to 8.0.3 fails with "Pre-install failed for vpxd-Expand"
search cancel

Patching vCenter from 8.0.2 to 8.0.3 fails with "Pre-install failed for vpxd-Expand"

book

Article ID: 378696

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:

  • Patching vCenter from 8.0.2.00100 to 8.0.3 fails with error : "Pre-install failed for vpxd-Expand"
  • Error snippet:
  • When checked with logs found: 
    • In /var/log/vmware/applmgmt/PatchRunner.log we see below entries:
    YYYY-MM-DDTHH:MM:SS vpxd: Expand ERROR vmware_b2b.patching. executor.hook_executor Patch hook 'vpxd: Expand' failed.
    Traceback (most recent call last) :
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/py/vmware_b2b/patching/executor/hook_executor.py", line 74, in executeHook executionResult = systemExtension (args)
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/libs/sdk/extensions.py", line 106, in _call result = self.extension (*args)
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/libs/sdk/extensions.py", line 123, in _func return func(*args)
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/payload/components-script/vpxd/_init _. py", line 152, in expand vpxd_cfg_patch.doPatching ()
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/payload/components-script/vpxd/patch_utils.py", line 371, in doPatching raise ex
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/payload/components-script/vpxd/patch_utils.py", line 363, in doPatching self.initCfgTree ()
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/payload/components-script/vpxd/patch_utils.py", line 233, in initCfgTree self.vpxdcfg = ET.parse (self. vpxd_cfg_path)
      File "/usr/lib/python3.10/xml/etree/ElementTree.py", line 1229, in parse 
    tree.parse (source, parser)
      File "/usr/lib/python3.10/xml/etree/ElementTree.py", line 580, in parse
    self.root = parser. parse_whole (source)
    xml.etree.ElementTree.ParseError: not well-formed (invalid token) : line 39, column 15
    YYYY-MM-DDTHH:MM:SS ERROR vmware_b2b.patching. utils.phase_utils Patch hook Expand got ComponentError.
    Traceback (most recent call last) :
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/py/vmware_b2b/patching/utils/phase_utils.py", line 143, in executeHook
    executeComponentsHook (hook,executeComponentHook (hook, ctx, c, userData, reportingQueue)
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/py/vmware_b2b/patching/executor/execution_facade.py", line 97, in executeComponentHook
    result = executeHook (c.patchScript, hook, args,
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/py/vmware_b2b/patching/executor/execution_facade.py", line 53, in executeHook
    result = executor. executeHook (scriptFile, hook, args, reportQueue, reportIdentifier)
      File "/storage/seat/software-updateomrm812p/stage/scripts/patches/py/vmware_b2b/patching/executor/hook_executor_process.py", line 119, in executeHook
    raise ex
    patch_errors.ComponentError
    YYYY-MM-DDTHH:MM:SSZ WARNING root stopping status aggregation ...
  • The error indicated that the vpxd.cfg file could not be parsed.at line 39.
  • When checked the same we could see that the below excerpt was present:
    • <vcls>
      <clusters>
      <domain-c22>
      <enabled>False</enabled>
      </domain-c22>
      <domain-c22:##############################>
      <enabled>False</enabled>
      </domain-c22:##############################>
      <domain-c86>
      <enabled>false</enabled>
      </domain-c86>
      <##############################>
      <enabled>False</enabled>
      </##############################>
      </clusters>
      </vcls>

Environment

VMware vCenter Server Appliance 8.x

Cause

The VCLS VMs were either deleted or previously misconfigured, followed by a vCenter reboot. As a result of this action, the vpxd.cfg file was left with incorrect data, preventing the vpxd service from starting.

Resolution

  1. Connect to the VCSA via SSH

    • Log in as the root user.

  2. Backup the vpxd.cfg File

    • Create a backup of the configuration file before making any changes:
      cp /etc/vmware-vpx/vpxd.cfg /etc/vmware-vpx/vpxd.cfg.bak

  3. Stop the vpxd Service

    • Ensure the vmware-vpxd service is not running:
      service-control --stop vpxd

  4. Remove VCLS Entries from the vpxd.cfg File

    Option 1: Automatic Removal (Preferred)

    • Run the following sed command to remove the entire VCLS section:
      sed '/<vcls>/,/<\/vcls>/d' -i /etc/vmware-vpx/vpxd.cfg

    Option 2: Manual Removal

    • Open the file using vi:
      vi /etc/vmware-vpx/vpxd.cfg

    • Locate and delete the <vcls> section, which may resemble:
      <vcls>
      <clusters>
      <domain-c22>
      <enabled>False</enabled>
      </domain-c22>
      <domain-c22:##############################>
      <enabled>False</enabled>
      </domain-c22:##############################>
      <domain-c86>
      <enabled>false</enabled>
      </domain-c86>
      <##############################>
      <enabled>False</enabled>
      </##############################>
      </clusters>
      </vcls>

    • Press Esc, type :wq!, and press Enter to save and exit.

  5. Restart the vpxd Service
    service-control --start vpxd

  6. Restart All vCenter Services
    service-control --stop --all && service-control --start --all

  7. Re-run the vCenter Update

    • Proceed with the update once all services are verified to be running normally.

Additional Information