Wednesday, August 13, 2014

Resolve bugcheck 0x00000109 CRITICAL_STRUCTURE_CORRUPTION on Windows Server 2012 running in ESXi host

This issue happened to some of my Windows Server 2012 R2 Standard Edition that we're running on VMWare's ESXi 5.1 hosts. Until today, I have not figured out what is the cause and why some servers get it while others do not. I deploy my Windows 2012 servers from the same image so this really puzzles me.

Symptom
  • Random instance of blue-screen-of-death (BSOD) even when server is idle
  • Error shows CRITICAL_STRUCTURE_CORRUPTION, STOP: 0x00000109

Affected OS
  • Windows Server 2012 R2 Standard Edition VM

This issue was resolved in ESXi 5.0 U3 or later but in case you have not upgraded, there is a KB from VMWare with details on how to implement a workaround.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2060019 

Just follow the instructions to solve the issue.
  1. Power down the virtual machine.
  2. Right-click the virtual machine and click Edit Settings.
  3. Click the Options tab.
  4. Select CPUID Mask under Advanced.
  5. Click Advanced.
    • For Intel:

      1. Under the Register column, locate the edx register under Level 80000001.
      2. Paste this into the value field:

        ----:0---:----:----:----:----:----:----

        For example, cpuid.80000001.edx = ----:0---:----:----:----:----:----:----

    • For AMD:

      1. Select the AMD Override tab.
      2. Change cpuid.80000001.edx.amd = -----------H-------------------- to
        cpuid.80000001.edx.amd = ----0---------------------------
  6. Click OK.
  7. Click OK to close the virtual machine properties.

Visual guide on where to locate the setting.
Click on "advanced". 



This is how it looks like before the change.



 This is how it should look like after the change.



And also remember to set the guest operating system as Windows Server 2012 for stability. (Only available from ESXi 5.0 U1 onwards)



Save the changes and you are done!