Understanding ASSERT and NOT_IMPLEMENTED purple diagnostic screens
search cancel

Understanding ASSERT and NOT_IMPLEMENTED purple diagnostic screens

book

Article ID: 311064

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Notes:



Symptoms:

You observe a purple diagnostic screen on an ESX host that displays information similar to:

@BlueScreen: ASSERT bora/vmkernel/main/pframe_int.h:527
NOT_IMPLEMENTED /build/mts/release/bora-84374/bora/vmkernel/main/util.c:83


Environment

VMware ESX 4.0.x
VMware ESXi 3.5.x Embedded
VMware ESX Server 3.5.x
VMware ESXi 4.0.x Installable
VMware ESXi 4.0.x Embedded
VMware ESXi 3.5.x Installable

Resolution

ASSERT

An assert is programming operation that checks the value of a variable to see if the variable violates a basic assumption. For example, if X is equal to five, then you can assert that X is also greater than zero. This example can be described using this notation:

X = 5;
assert(X > 0);

Example: An ASSERT error looks like:

@BlueScreen: ASSERT bora/vmkernel/main/pframe_int.h:527
0:01:39:57.763 cpu1:4553)Code start: 0x41800be00000 VMK uptime: 0:01:39:57.763
0:01:39:57.770 cpu1:4553)0x4100c0e4fd08:[0x41800be82f8a]Panic+0xa9 stack: 0xb3146ae7a7770
0:01:39:57.779 cpu1:4553)0x4100c0e4fd88:[0x41800bf0959f]VmMemMigrateAddPageDirToDest+0x5ba stack: 0x4100c0e4fda8
0:01:39:57.789 cpu1:4553)0x4100c0e4fe48:[0x41800bf0ac01]VmMemMigrate_TransferMemory+0xc10 stack: 0x4100c0e4fed8
0:01:39:57.799 cpu1:4553)0x4100c0e4fef8:[0x41800c8bf281]FSR_ResumeDone+0x510 stack: 0x4100c0e4ff18
0:01:39:57.808 cpu1:4553)0x4100c0e4ff28:[0x41800c8aa6ce]Migrate_RestoreDone+0xdd stack: 0x41800bf15efc
0:01:39:57.817 cpu1:4553)0x4100c0e4ff98:[0x41800bf155a6]VMMVMKCall_Call+0x585 stack: 0x4100c0e4fff0
0:01:39:57.826 cpu1:4553)0x4100c0e4ffe8:[0x41800bef2a4c]VMKVMMEnterVMKernel+0x1ab stack: 0x41800bf613b0
0:01:39:57.835 cpu1:4553)0xfffffffffc0863d8:[0xfffffffffc22633b]<unknown> stack: 0x0
lastClrIntrRA:0x41800bf41587
0:01:39:57.855 cpu1:4553)FSbase:0x0 GSbase:0x0 kernelGSbase:0x0
Coredump to disk.
0:01:39:57.912 cpu1:4553)Dump: Dump:1367: Starting dump.
Slot 1 of 1.
0:01:39:57.923 cpu1:4553)Dump: WriteHeader:1319: New size 0 (0 compressed, 0 uncompressed)

The most important line is the main error. In our example, the main error is:

@BlueScreen: ASSERT bora/vmkernel/main/pframe_int.h:527

The main error provides this information:

  • ASSERT - indicates that an assert error has occurred.
  • bora/vmkernel/main/pframe_int.h:527 - indicates the section of code that the assert occurred on.

This information is unique to a section of code. When you have identified this information, search the Knowledge Base for the main error to locate articles that pertain to your exact issue. If the error has not been documented within the Knowledge Base, collect diagnostic information from the VMware ESX host and submit a support request. For more information, see Collecting diagnostic information for VMware products (1008524) and How to Submit a Support Request.

NOT_IMPLEMENTED

Errors that contain the words NOT_IMPLEMENTEDare a specific type of assert.

Example: A NOT_IMPLEMENTED error looks like:

NOT_IMPLEMENTED /build/mts/release/bora-84374/bora/vmkernel/main/util.c:83
frame=0x1402cb8 ip=0x639488 cr2=0xff400000 cr3=0x34401000 cr4=0x6f0
es=0xffffffff ds=0xffffffff fs=0xffffffff gs=0xffffffff
eax=0xffffffff ebx=0xffffffff ecx=0xffffffff edx=0xffffffff
ebp=0x1402e14 esi=0xffffffff edi=0xffffffff err=-1 eflags=0xffffffff
*0:0/<NULL> 1:0/<NULL> 2:0/<NULL> 3:0/<NULL>
4:0/<NULL> 5:0/<NULL> 6:0/<NULL> 7:0/<NULL>
8:0/<NULL> 9:0/<NULL> 10:0/<NULL> 11:0/<NULL>
12:0/<NULL> 13:0/<NULL> 14:0/<NULL> 15:0/<NULL>
@BlueScreen: NOT_IMPLEMENTED
/build/mts/release/bora-84374/bora/vmkernel/main/util.c:83
0x1402e14:[0x639488] stack: 0x9a8684, 0x1402e30, 0x1402e4c
0x1402e24:[0x639488] stack: 0x9a8684, 0x9b76ac, 0x53
0x1402e4c:[0x6679eb] stack: 0x145c2e0, 0x145f340, 0x24e41e0
0x1402eac:[0x637157] stack: 0x3e90, 0x1, 0x1
0x1402f60:[0x6ec33c] stack: 0x1402fbc, 0x1402f7c, 0x4
0x1402fe8:[0x6ea851] stack: 0x0, 0x0, 0x0
VMK uptime: TSC: 40761212985 TSC: 1122104084292

A NOT_IMPLEMENTED error occurs when the software code encounters a situation that it was not designed to handle. For example, due to a software error or mis-configuration, a piece of software within a guest operation system can tell the virtual hardware to perform a REWIND operation on a hard disk. Since virtual hard disks are not designed to be rewound, the software may catch the command in an assert and throw an error message.

The most important line is the main error. In our example, the main error is:

NOT_IMPLEMENTED /build/mts/release/bora-84374/bora/vmkernel/main/util.c:83

The main error provides this information:

  • NOT_IMPLEMENTED - indicates that an assert error has occurred
  • /build/mts/release/bora-84374/bora/vmkernel/main/util.c:83- indicates the section of code that the assert occurred on.

This information is unique to a section of code. When you have identified this information, search the Knowledge Base for the main error to locate articles that pertain to your exact issue. If the error has not been documented within the Knowledge Base, collect diagnostic information from the VMware ESX host and submit a support request. For more information, see Collecting diagnostic information for VMware products (1008524) and How to Submit a Support Request.


Additional Information

Interpreting an ESX/ESXi host purple diagnostic screen
VMware ESXi, Patch ESXe350-200811401-I-SG: Firmware Update
Collecting diagnostic information for VMware products
Incorrect value for vmklinuxHeapMaxSizeMB in ESX 3.5 Update 4 causes ESX to fail
An ESX host fails to boot after increasing the Service Console or system memory