AP tool enable patch for VC/NSXT on VxRail fails after the Skip Level Upgrade
search cancel

AP tool enable patch for VC/NSXT on VxRail fails after the Skip Level Upgrade

book

Article ID: 311884

calendar_today

Updated On:

Products

VMware Cloud Foundation

Issue/Introduction

If the user tries to enable patch after SLU(Skip Level Upgrade) for VC/NSXT with the ap tool versions less than 1.0.0.5 , the bundle(VC/NSXT) may not become available due to an issue with the version of ESX added in the Software Compatibility Sets file . In order to overcome this issue, The work around is provided to unblock the users to make the bundle available . 

Symptoms:
This issue is likely to occur, if the environment has undergone a
SLU (Skip Level Upgrade) and the enable patch of VC or NSXT is tried with
the AP tool . 

2022-10-18 06:08:04.729 [INFO ] Updating telemetry details of operation: ENABLE_ASYNC_PATCH
2022-10-18 06:08:04.736 [INFO ] Added operation ENABLE_ASYNC_PATCH and its status FAILURE to async patch tool metrics
2022-10-18 06:08:04.769 [INFO ] Successfully updated telemetry details of operation: ENABLE_ASYNC_PATCH
2022-10-18 06:08:04.769 [ERROR] Error while initiating required functionality: ENABLE_ASYNC_PATCH
2022-10-18 06:08:04.784 [ERROR] POST_CHECKS_FAILED
-- Error Message: Failures found during AP Tool postchecks - [Post enable patch check failed due to upgradable status is incorrect for bundle .Upgradable status should be AVAILABLE.]
-- Remedy: Please refer to AP tool and LCM logs for further debugging. Contact GSS if issue persists.

Exception in thread "main" com.vmware.evo.sddc.lcm.model.error.LcmException: Failures found during AP Tool postchecks - [Post enable patch check failed due to upgradable status is incorrect for bundle. Upgradable status should be AVAILABLE.]
                at com.vmware.evo.sddc.lcm.tools.asyncpatch.PostCheck.checkUpgradableStatus
(PostCheck.java:318)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.PostCheck.doPostchecks
(PostCheck.java:117)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.PostCheck$$FastClassBySpring
CGLIB$$28128a32.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.
invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed
(CglibAopProxy.java:763)
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed
(MethodInvocationProceedingJoinPoint.java:89)
        at com.vmware.vcf.featuretoggle.aspect.FeatureToggleAspect.trace
(FeatureToggleAspect.java:39)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod
WithGivenArgs(AbstractAspectJAdvice.java:634)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod
(AbstractAspectJAdvice.java:624)
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAround
Advice.java:72)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.
proceed(CglibAopProxy.java:763)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke
(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.
proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvised
Interceptor.intercept(CglibAopProxy.java:708)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.PostCheck$$EnhancerBySpring
CGLIB$$6dc00a0d.doPostchecks(<generated>)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.AsyncPatchEnabler.enablePatches
(AsyncPatchEnabler.java:153)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.AsyncPatchWorkflowComposer.
executeActionsBasedOnSpec(AsyncPatchWorkflowComposer.java:125)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.AsyncPatchWorkflowComposer
Helper.executeActionsBasedOnInputSpec(AsyncPatchWorkflowComposerHelper.java:124)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.EnablePatchHelper.enablePatches
(EnablePatchHelper.java:115)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.AsyncPatchToolMain.process
(AsyncPatchToolMain.java:243)
        at com.vmware.evo.sddc.lcm.tools.asyncpatch.AsyncPatchToolConfig.main
(AsyncPatchToolConfig.java:198


Cause

During the SLU , there will be some sets of aliases added for the ESX . During enable patch with the AP tool, We construct software compatibility sets file , which LCM used to calculate the bundle applicability .
Since these aliases are not honored due to a bug in the AP tool , the constructed software compatibility sets file will not make the bundle AVAILABLE for upgrade . 

Resolution

This issue will be fixed in future releases.

Workaround:
Until the fix is released users are requested to apply the below workaround steps :

Step 1.
Copy the softwareCompatibilitySets from
/nfs/vmware/vcf/nfs-mount/bundle to /nfs/vmware/vcf/nfs-mount/bundle/depot/local

Step 2 .
Find the compat set entry below:
a. If the bundle is VC , find the entry in the file with the VC version as "upgrade to version" of VC bundle and the current(or base version from Alias file) of NSXT and current version of ESX . 

b. If the bundle is NSXT, find the entry in the file with the NSXT version as "upgrade to version" of NSXT bundle and the current(or base version from Alias file) of VC and current version of ESX . 
 
Step 3.
Check in the alias file /opt/vmware/vcf/lcm-app/conf/VersionAlias.yml for any aliases of ESX(with current version). 

Step 4.
Modify the SCS file and add the base version of ESX in the file.
 
Step 5.
chmod 777 /nfs/vmware/vcf/nfs-mount/bundle/depot/local/softwareCompatibilitySets.json

Step 6.
curl -X PUT http://localhost/lcm/bundle/upload/compatibilitySets -H "Content-Type: application/json"