Enabling Async Patch for VxRail fails in precheck if another Async patch is already enabled
search cancel

Enabling Async Patch for VxRail fails in precheck if another Async patch is already enabled

book

Article ID: 301590

calendar_today

Updated On:

Products

VMware Cloud Foundation

Issue/Introduction

To enable VXRAIL bundle using Async patch tool 

Symptoms:
  • Enabling Async Patch for VxRail will fail in precheck if there is another Async Patch enabled and not applied
  • Logs would show the below NullPointerException


2023-03-01 20:54:11.396 [main] DEBUG [com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck]
Skip precheck task: COMPATIBILITY_VALIDATION
2023-03-01 20:54:11.396 [main] DEBUG [com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck]
All precheck tasks that need to be done: [PRE_UPLOADED_ASYNC_PATCH_BUNDLE_VALIDATION, NO_LCM_DEPENDENT_SERVICE_WORKFLOW_IN_PROGRESS_VALIDATION, NO_IN_PROGRESS_UPGRADE_VALIDATION, NO_SCHEDULED_UPGRADE_VALIDATION, NO_PARTIALLY_UPGRADED_NSXT_CLUSTER_VALIDATION]
2023-03-01 20:54:11.397 [main] INFO [com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck]
Performing precheck - validate no unused pre-uploaded ap tool bundles
2023-03-01 20:54:11.587 [main] DEBUG [com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck]
Unexpected exception thrown during precheck:
java.lang.NullPointerException: null
at com.vmware.evo.sddc.lcm.tools.common.BundleUtil.getApToolBundleId(BundleUtil.java:152)
at com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck.lambda$validateNoUnusedPreUploadedApToolBundle$0(PreCheck.java:389)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck.validateNoUnusedPreUploadedApToolBundle(PreCheck.java:391)
at com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck.performPrechecks(PreCheck.java:231)
at com.vmware.evo.sddc.lcm.tools.asyncpatch.PreCheck.doPrechecks(PreCheck.java:137)


Environment

VMware Cloud Foundation 4.x

Cause

The Async Patch Tool would perform a precheck before enabling an Async Patch to make sure there are no other enabled Async Patches in the LCM, if there is an Async Patch that is already enabled and not applied, it would fail at this precheck stage

Resolution

The issue will be fixed in the next Async Patch Tool release . 

Workaround:
  • Run the disable patch on the environment so that the previously enabled bundle will be removed from the LCM . Below is the disable patch command .

    ./vcf-async-patch-tool -disableAllPatches --sddcSSOUser sddc_sso_user --sddcSSHUser sddc_ssh_user

    Replace sddc_sso_user with the sddc sso user

    Replace sddc_ssh_user with the sddc ssh user

 

  • Run the enable patch again on the system .