Intermittent MAC Learning Synchronization Failure on NSX 4.2.1.0
search cancel

Intermittent MAC Learning Synchronization Failure on NSX 4.2.1.0

book

Article ID: 446998

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

Workloads on VMware NSX may experience intermittent connectivity issues where MAC learning fails to function as expected on segment profiles. This typically prevents virtual machines from obtaining DHCP IP addresses or communicating across the segment. While the NSX Manager indicates that MAC learning is enabled, the actual state on the transport node may show it as disabled, confirming a synchronization failure between the management plane and the host.

Environment

  • VMware NSX 4.2.0.x
  • VMware NSX 4.2.1.0, 4.2.1.1, 4.2.1.2, 4.2.1.3

Cause

This issue is caused by a known JDK defect (JDK-8330017) present in the affected NSX versions. The defect leads to thread and memory exhaustion within critical services, including the Controller, Upgrade Coordinator, and Corfu.

When these services degrade, the management plane becomes unable to push the intended configuration (realized state) to the transport node ports. Consequently, even if MAC learning is toggled 'on' in the UI, the backend ESXi host (as seen via nsxdp-cli) may continue to report the feature as false due to a stuck realization queue.

Resolution

To resolve this issue, follow the steps below:

  1. Immediate Workaround: Perform a sequential rolling reboot of the NSX Manager nodes. This clears the accumulated resource leaks in the Corfu and Controller subsystems and allows the management plane to synchronize port properties with the physical hosts.

    • Reboot the first NSX Manager.
    • Wait for all services to report as 'Up' (get cluster status).
    • Proceed to reboot the subsequent managers one at a time.
  2. Permanent Fix: Upgrade the NSX environment to a version where this JDK defect is resolved, such as NSX 4.2.1.4, 4.2.2.0, or higher.

For more detailed technical information regarding the underlying JDK bug, refer to KB 396719.