Guest OS within a VM abruptly restarts with the event: A fault has occurred causing a virtual CPU to enter the shutdown state
search cancel

Guest OS within a VM abruptly restarts with the event: A fault has occurred causing a virtual CPU to enter the shutdown state

book

Article ID: 393116

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

The Guest OS within a VM abruptly reboots with the below symptoms:

  • The Virtual Machine reports the following event in the vSphere Client,

    A fault has occurred causing a virtual CPU to enter the shutdown state. If this fault had occurred outside of a virtual machine, it would have caused the physical machine to restart. The shutdown state can be reached by incorrectly configuring the virtual machine, a bug in the guest operating system, or a problem in VM

  • Windows Guest OS will report event ID 41: The system has rebooted without cleanly shutting down first
  • The VMs vmware.log shows the following events:

    YYYY-MM-DDT00:00:00.000Z In(05) vcpu-18 - Triple fault.
    YYYY-MM-DDT00:00:00.000Z  In(05) vcpu-18 - MsgHint: msg.monitorEvent.tripleFault
    YYYY-MM-DDT00:00:00.000Z  In(05)+ vcpu-18 - A fault has occurred causing a virtual CPU to enter the shutdown state. If this fault had occurred outside of a virtual machine, it would have caused the physical machine to restart. The shutdown state can be reached by incorrectly configuring the virtual machine, a bug in the guest operating system, or a problem in VMware ESX.---------------------------------------
    YYYY-MM-DDT00:00:00.000ZIn(05) vcpu-0 - CPU reset: hard (mode HV)
    YYYY-MM-DDT00:00:00.000Z  In(05) vcpu-0 - Chipset: The guest has requested that the virtual machine be hard reset.

Environment

VMware vSphere ESXi

Cause

This issue can occur if

  • The virtual machine is configured incorrectly.
  • There is a bug within the Guest OS that caused the triple fault.
  • The vmdk has an invalid adapterType configured. For eg. pvscsi controller with a vmdk that contains the buslogic adapterType

Resolution

To resolve the issue,

  • Review the SCSI controller type that is configured on the VM using the command,

    grep scsi vm-name.vmx | grep virtualDev

    For eg.
    [root@hostname:/vmfs/volumes/datastore/vm-folder/] grep scsi vm-name.vmx | grep virtualDev
    scsi0.virtualDev = "pvscsi"

  • Review the adapterType configured on the vmdk descriptor files that use the above scsi controller using the below command.

    grep ddb.adapterType vm-name.vmdk

    For eg.
    [root@hostname:/vmfs/volumes/datastore/vm-folder/] grep ddb.adapterType vm-name.vmdk
    ddb.adapterType = "buslogic"

  • Use the below table to identify the correct ddb.adapterType for the SCSI adapter.

    Controller Type Adapter Type
    BusLogic buslogic
    LSI Logic lsilogic
    LSI Logic SAS lsilogic
    PVSCSI lsilogic
  • Shutdown the VM, backup the VMDK descriptor file and update the ddb.adapterType.

    For eg.
    • Power off the VM
    • Backup the vmdk descriptor file.
      [root@hostname:/vmfs/volumes/datastore/vm-folder/] cp vm-name.vmdk vm-name.vmdk.bak

    • Edit the vmdk descriptor file
      [root@hostname:/vmfs/volumes/datastore/vm-folder/] vi vm-name.vmdk

    • Update from ddb.adapterType = "buslogic" to ddb.adapterType = "lsilogic" and save the file.

    • Power on the VM

Additional Information