Unable to complete VMware NSX upgrade due to failed IpPoolLogicalMigrationsTask.
search cancel

Unable to complete VMware NSX upgrade due to failed IpPoolLogicalMigrationsTask.

book

Article ID: 377459

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

  • User will see the failure while running upgrade pre-check, upgrade will fail due to IpPoolLogicalMigrationsTask.
  • The failure will occur at the pre-check.
  • User should look at var/log/proton/nsxapi.log for the log message below:

    WARN pool-9-thread-1 UfoCorfuTableMigrator 19758 - [nsx@6876 comp="nsx-manager" level="WARNING" subcomp="manager"] ERROR while running logical migration MappingDetails{name='IpPoolLogicalMigrationTask', runForT heseFromVersions='3.1,3.2.0', targetVersion='3.2.1', modelName='null', migrationType=null, reason='Revision correction of IpPools', customMigratorClassName='com.vmware.nsx.management.migration.impl.IpPoolLogicalMigrationTask', fieldMapp ings=null, targetProtoName='null', requiresCustomCode='false', owner='null', apiToTest='null'}
    java.lang.IllegalArgumentException: Key cannot be null on nsx$IpPool in transaction on namespace nsx at org.corfudb.runtime.collections.TxnContext.baseValidateWrite(TxnContext.java:167) ~[logical-migration.jar:?]"

Environment

VMware NSX 4.x

VMware NSX-T Data Center 3.x

Cause

This is a condition that may occur in a VMware NSX environment, due to a stale IPPool GPRR entry which has realizationObjectId set as null, as a result of this, the IpPoolLogicalMigrationsTask is failing during upgrade..

Resolution

This is a known issue impacting VMware NSX.

If you believe you have encountered this issue, please open a support request with Broadcom Support and refer to this KB article.

Please collect the below information when raising the support request:

  1. GET all IpPools from Policy
    GET https://<NSX-IP>/policy/api/v1/infra/ip-pools/
  2. For each IpPool fetched from above step, execute below API
    GET https://<NSX-IP>/policy/api/v1/infra/realized-state/realized-entities?intent_path=<policy-ippool-path> or Or Get all GPRRs in txt file : /opt/vmware/bin/corfu_tool_runner.py --tool corfu-browser -n nsx -t GenericPolicyRealizedResource -o showTable > gprr.txt
  3. Fetch all IpPools from Manager
    GET https://<NSX-IP>/api/v1/pools/ip-pools