ESXi host fails with Purple Screen of Death on Nutanix servers when virtual USB network device is enabled/disabled in quick succession
search cancel

ESXi host fails with Purple Screen of Death on Nutanix servers when virtual USB network device is enabled/disabled in quick succession

book

Article ID: 325023

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

  • The PSOD - PANIC bora/vmkernel/main/dlmalloc.c:4944 - Usage error in dlmalloc
  • The backtrace will be one of the following:
     Code start: 0x### VMK uptime: hh:mm:ss:##.###
      0x###:[0x###]PanicvPanicInt@vmkernel#nover+0x327 stack: 0x###
      0x###:[0x###]Panic_NoSave@vmkernel#nover+0x4d stack: 0x###
      0x###:[0x###]DLM_free@vmkernel#nover+0x22d stack: 0x###
      0x###:[0x###]Heap_Free@vmkernel#nover+0xba stack: 0x###
      0x###:[0x###]LROContextUninitStats@vmkernel#nover+0x25 stack: 0x0
      0x###:[0x###]LRO_Destroy@vmkernel#nover+0x6e stack: 0x###
      0x###:[0x###]NetPollCleanupWorldHelperCB@vmkernel#nover+0x42 stack: 0x###
      0x###:[0x###]HelperQueueFunc@vmkernel#nover+0x1d2 stack: 0x###
      0x###:[0x###]CpuSched_StartWorld@vmkernel#nover+0x86 stack: 0x0
      0x###:[0x###]Debug_IsInitialized@vmkernel#nover+0xc stack: 0x0
  • Or:
     Code start: 0x### VMK uptime: hh:mm:ss:##.###
      0x###:[0x###]MCSLockWait@vmkernel#nover+0x10f stack: 0x0
      0x###:[0x###]MCSLockWork@vmkernel#nover+0x2a stack: 0x###
      0x###:[0x###]LROContextUninitStats@vmkernel#nover+0x15 stack: 0x###
      0x###:[0x###]LRO_Destroy@vmkernel#nover+0x61 stack: 0x###
      0x###:[0x###]NetPollCleanupWorldHelperCB@vmkernel#nover+0x44 stack: 0x###
      0x###:[0x###]HelperQueueFunc@vmkernel#nover+0x19d stack: 0x###
      0x###:[0x###]CpuSched_StartWorld@vmkernel@nover+0xbf stack: 0x0
      0x###:[0x###]Debug_IsInitialized@vmkernel#nover+0xc stack: 0x0
  • Or:
    Panic Details: Crash at YYYY-MM-DDTHH:MM:SS on CPU 48 running world MASKED_WID - #####-######. VMK Uptime:DD:HH:MM:SS.MS
    Panic Message: @BlueScreen: #GP Exception 13 in world 3067893:#####-###### @ 0xMASKED_ID_1
    
    0xMASKED_ID_2:0x###########]DLM_free@vmkernel#nover+0x340 stack: 0x###########, 0x###########, 0x###########, 0x###########, 0x###########
    0x###########:0x###########]Heap_Free@vmkernel#nover+0xba stack: 0x###########, 0x1, 0x0, 0x###########, 0x0
    0x###########:0x###########]DVSDevDataGet@(dvsdev)#<None>+0x24d stack: 0x3, 0x###########, 0x###########, 0x###########, 0x###########
    0x###########:0x###########]DVSDevCharOpsIoctl@(dvsdev)#<None>+0x18f stack: 0x0, 0x0, 0x###########, 0x###########, 0x###########
    0x###########:0x###########]VMKAPICharDevDevfsWrapIoctl@vmkernel#nover+0x87 stack: 0x49, 0x###########, 0x###########, 0x0, 0x2
    0x###########:0x###########]CharDriverIoctl@vmkernel#nover+0x7d stack: 0x###########, 0x###########, 0x###########, 0x###########, 0x###########
    0x###########:0x###########]DevFSIoctl@vmkernel#nover+0xad3 stack: 0x###########, 0x###########, 0x2, 0x0, 0x###########
    0x###########:0x###########]FSSVec_Ioctl@vmkernel#nover+0x20 stack: 0x###########, 0x###########, 0x1000, 0x1000, 0x4f
    0x###########:0x###########]FSSObjectIoctlCommon@vmkernel#nover+0x60 stack: 0x1000, 0x1000, 0x4f, 0x1000, 0x91
    0x###########:0x###########]FSS_IoctlByFH@vmkernel#nover+0x9f stack: 0x0, 0x###########, 0x8, 0x561747e720, 0x0
    0x###########:0x###########]UserFile_PassthroughIoctl@vmkernel#nover+0x3f stack: 0x###########, 0x###########, 0x###########, 0x0, 0x###########
    0x###########:0x###########]UserVmfs_Ioctl@vmkernel#nover+0x27 stack: 0x###########, 0x###########, 0x2, 0x###########, 0x###########
    0x###########:0x###########]LinuxFileDesc_Ioctl@vmkernel#nover+0x51 stack: 0x###########, 0x10, 0x1, 0x###########, 0x###########
    0x###########:0x###########]User_LinuxSyscallHandler@vmkernel#nover+0x1a4 stack: 0x0, 0x0, 0x0, 0x###########, 0x10b
    0x###########:0x###########]gate_entry@vmkernel#nover+0x68 stack: 0x0, 0x10, 0x###########, 0x###########, 0x###########
  • Port enabled and disabled messages associated with the virtual USB network device are repeated in vmkernel.log:
      Uplink: 12282: enabled port 0xxxxxxxxx with mac xx:xx:xx:xx:xx:xx
      NetPort: 1793: disabled port 0xxxxxxxxx
  • vmkernel log will indicate similar errors just before the PSOD event:
    YYYY-MM-DDTHH:MM:SS cpu25:#########)WARNING: vmkusb: udev 0x###########, endpoint 0x83: invalid state 5: Failure
    YYYY-MM-DDTHH:MM:SS cpu25:#########)WARNING: vmkusb: udev 0x###########, endpoint 0x0: invalid state 5: Failure
    YYYY-MM-DDTHH:MM:SS cpu30:#########)NetqueueBal: 5066: vusb0: new netq module, reset logical space needed
    YYYY-MM-DDTHH:MM:SS cpu30:#########)NetqueueBal: 5095: vusb0: plugins to call differs, reset logical space
    YYYY-MM-DDTHH:MM:SS cpu10:#########)DMA: 732: DMA Engine 'vusb0-dma-engine' destroyed.
    YYYY-MM-DDTHH:MM:SS cpu30:#########)NetqueueBal: 3146: vusb0: rxQueueCount=0, rxFiltersPerQueue=0, txQueueCount=0 rxQueuesFeatures=0x0
    YYYY-MM-DDTHH:MM:SS cpu30:#########)NetPort: 1810: disabled port 0x###########
    YYYY-MM-DDTHH:MM:SS cpu66:#########)NetSched: 725: vusb0-0-tx: worldID = ######### exits
    YYYY-MM-DDTHH:MM:SS cpu30:#########)Uplink: 12274: The default queue is not ready for device vusb0.
    YYYY-MM-DDTHH:MM:SS cpu30:#########)cswitch: VSwitchUplinkPortSetNUMAID:3831: [nsx@6876 comp="nsx-esx" subcomp="vswitch"]Cannot get mem affinity from uplink vusb0[#########]: Not supported
    YYYY-MM-DDTHH:MM:SS cpu30:#########)Uplink: 12285: enabled port 0x########### with mac ##:##:##:##:##:##
    YYYY-MM-DDTHH:MM:SS cpu30:#########)Uplink: 2750: vusb0, fast switch on uplink(0x###########) connected to PPS is not supported
    YYYY-MM-DDTHH:MM:SS cpu10:#########)NetPort: 1810: disabled port 0x###########
    YYYY-MM-DDTHH:MM:SS cpu10:#########)WARNING: World: vm 12162030: 3819: vm not found
    YYYY-MM-DDTHH:MM:SS cpu10:#########)WARNING: vmkusb: failed to destroy world 12162030: Not found
    YYYY-MM-DDTHH:MM:SS cpu10:#########)WARNING: vmkusb: udev 0x###########, endpoint 0x0: invalid state 5: Failure
    YYYY-MM-DDTHH:MM:SS cpu11:MASKED_OPID1)NetSched: 725: vusb0-0-tx: worldID = MASKED_OPID1 exits
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)World: 12077: VC opID ed###### maps to vmkernel opID MASKED_OPID2
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)World: 3072: PRDA 0x########### ss 0x0 ds 0x10b es 0x10b fs 0x10b gs 0x0
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)World: 3074: TR 0xf58 GDT 0x########### (0xf77) IDT 0x########### (0xfff)
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)World: 3075: CR0 0x########### CR3 0x########### CR4 0x###########
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)Backtrace for current CPU #48, worldID=MASKED_WID, fp=0x###########
    YYYY-MM-DDTHH:MM:SS cpu48:MASKED_WID opID=MASKED_OPID2)0xMASKED_ID_2:[0xMASKED_ID_1]DLM_free@vmkernel#nover+0x340 stack: 0x###########, 0x###########, 0x###########, 0x###########, 0x###########
  • This issue has been observed only on Nutanix servers, but may not be limited to them.

Environment

VMware vSphere ESXi 7.0.x
VMware vSphere ESXi 8.0.x

Cause

Nutanix LCM process may keep enable and disable virtual USB network device device and that cause double-free problem due to a race condition.

Resolution

Broadcom VMware engineering are aware of this issue and are currently investigating.

Please feel free to click on the subscribe button to receive further notifications when this article is modified or updated.

The current workaround suggested is to avoid disabling the vusb device, e.g. by the Nutanix LCM process.