BSOD error 0x124 - Windows 7 x64

joemag

Member
Joined
Jan 6, 2015
Posts
7
Hello there, my wife's main computer has been having a persistent problem with BSOD error 124, and I've not been able to find the root cause, so I was hoping to get some help.

OS: Windows Ultimate x64
Original OS: None (custom built)
Full Retail or OEM: Full Retail Version
Age of system: ~1.5 years
Age of install: 2-3 weeks (we tried multiple fresh installs while trying to solve it ourselves)

CPU: Intel Core i7-4770K
Video Card: EVGA 02G-P4-2678-KR GeForce GTX 670 FTW 2GB
Motherboard: GIGABYTE GA-Z87X-UD3H LGA 1150 Intel Z87
Power Supply: CORSAIR HX Series HX750 750W

Manufacturer: None, custom build

Laptop or Desktop: Desktop
 

Attachments

Hi,

WHEA_UNCORRECTABLE_ERROR (124)

A fatal hardware error has occurred. This fatal error displays data from the Windows Hardware Error Architecture (WHEA).

Code:
===============================================================================
Section 2     : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor    @ fffffa800ed2a138
Section       @ fffffa800ed2a2c0
Offset        : 664
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : GCACHEL2_ERR_ERR (Proc 7 Bank 5)
  Status      : 0xbe0000000100110a
  Address     : 0x00000001a8bb1380
  Misc.       : 0x000000d084000086

L2 cache error, specifically regarding processor #7 and cache bank #5. If we look at other dumps:

Code:
===============================================================================
Section 2     : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor    @ fffffa800ed99138
Section       @ fffffa800ed992c0
Offset        : 664
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : GCACHEL2_ERR_ERR (Proc 0 Bank 5)
  Status      : 0xbe0000000100110a
  Address     : 0x0000000438ea8800
  Misc.       : 0x0000005086000086

Code:
===============================================================================
Section 2     : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor    @ fffffa800ed7d138
Section       @ fffffa800ed7d2c0
Offset        : 664
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : GCACHEL2_ERR_ERR (Proc 3 Bank 5)
  Status      : 0xbe0000000100110a
  Address     : 0x00000004381e94c0
  Misc.       : 0x0000001084000086

It seems that throughout crash dumps, the cache bank remains consistent.

Code:
7: kd> lmvm UltraMonUtility
start             end                 module name
fffff880`08043000 fffff880`0804c000   UltraMonUtility   (deferred)             
    Image path: \??\C:\Program Files (x86)\Common Files\Realtime Soft\UltraMonMirrorDrv\x64\UltraMonUtility.sys
    Image name: UltraMonUtility.sys
    Timestamp:        Thu Nov 13 20:10:30 2008

I'd remove UltraMon from the picture. I understand the appeal behind this software, but it's really old and buggy. I've seen it cause a lot of issues in the past.

If you still crash after the above, let me know.
 
Ok, we've removed Ultramon and good so far. I'll update if we get another BSOD, or if it goes a long time without one (sometimes there would be weeks between crashes, so hard to tell if it's truly good).
 
We got a new blue screen yesterday, though this time it's a different error (first time I've seen this one). I've attached the minidump; let me know if you want more info/data.
 

Attachments

Code:
1: kd> .bugcheck
Bugcheck code 0000000A
Arguments 00000000`00000008 00000000`00000002 00000000`00000001 fffff800`030cb270

1: kd> u fffff800`030cb270
nt!KiSignalSynchronizationObject+0x160:
fffff800`030cb270 48894108        mov     qword ptr [rcx+8],rax [COLOR="#800080"]//Access shared data[/COLOR]
fffff800`030cb274 48c785c002000000000000 mov qword ptr [rbp+2C0h],0 
fffff800`030cb27f f04983a69044000000 lock and qword ptr [r14+4490h],0 [COLOR="#800080"]//Acquire lock[/COLOR]
fffff800`030cb288 e93dffffff      jmp     nt!KiSignalSynchronizationObject+0xba (fffff800`030cb1ca) [COLOR="#800080"]//Jump to stay in loop, check for condition[/COLOR]
fffff800`030cb28d f083402801      lock add dword ptr [rax+28h],1 //Acquire lock
fffff800`030cb292 e927ffffff      jmp     nt!KiSignalSynchronizationObject+0xae (fffff800`030cb1be) [COLOR="#800080"]//Jump to stay in loop, check for condition[/COLOR]
fffff800`030cb297 4533ff          xor     r15d,r15d
fffff800`030cb29a 41ffc7          inc     r15d

1: kd> kn
 # Child-SP          RetAddr           Call Site
00 fffff880`0c1cd6e8 fffff800`030c4429 nt!KeBugCheckEx
01 fffff880`0c1cd6f0 fffff800`030c30a0 nt!KiBugCheckDispatch+0x69
02 fffff880`0c1cd830 fffff800`030cb270 nt!KiPageFault+0x260 [COLOR="#800080"]//Accessed invalid memory[/COLOR]
03 fffff880`0c1cd9c0 fffff800`030c9556 nt!KiSignalSynchronizationObject+0x160 [COLOR="#800080"]//most likely accessing shared data[/COLOR]
04 fffff880`0c1cda10 fffff800`033acfd4 nt!KeSetEvent+0x106 [COLOR="#800080"]//Set event, most likely raising IRQL[/COLOR]
05 fffff880`0c1cda80 fffff800`030c4113 nt!NtSetEvent+0x90
06 fffff880`0c1cdae0 00000000`75472e09 nt!KiSystemServiceCopyEnd+0x13
07 00000000`07b2ead8 00000000`00000000 0x75472e09

It's probably best to enabled Automatic Checks and Force IRQL Checking in Driver Verifier.
Given we've had 0x124s, I would say this is either bad RAM or a bad CPU.
Minidumps are almost useless when trying to find this information, can I request a Full Memory Dump for future crashes.

Go the Start
Right click My Computer
Select Properties
Click Advanced system settings
Click on the Advanced tab
Select Settings under Startup and Recovery
Then under Write debugging information select Complete memory dump.

Once a dump is created go to:

Code:
C:\Windows\memory.dmp

Copy the file to the desktop, zip it up and upload it to a file sharing site like Onedrive. After the upload is done post the download link in your next reply.
 
Last edited:
Code:
===============================================================================
Section 2     : x86/x64 MCA
-------------------------------------------------------------------------------
Descriptor    @ fffffa800ec15138
Section       @ fffffa800ec152c0
Offset        : 664
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : GCACHEL2_ERR_ERR (Proc 1 Bank 7)
  Status      : 0xbe0000000100110a
  Address     : 0x000000042071df00
  Misc.       : 0x0000011086000086

You have a bad CPU, IMO. Can you run Memtest just to be sure it's not your RAM?

Memtest86+:

Download Memtest86+ here:

Memtest86+ - Advanced Memory Diagnostic Tool

Which should I download?

You can either download the pre-compiled .ISO that you would burn to a CD and then boot from the CD, or you can download the auto-installer for the USB key. What this will do is format your USB drive, make it a bootable device, and then install the necessary files. Both do the same job, it's just up to you which you choose, or which you have available (whether it's CD or USB).

Do note that some older generation motherboards do not support USB-based booting, therefore your only option is CD (or Floppy if you really wanted to).

How Memtest works (you don't need to read, it's only for those interested in the specifics):

Memtest uses algorithms (specifically two), namely moving inversion & what is deemed Modulo-X. Essentially, the first algorithm fills the memory with a pattern. Starting at the low address, it checks to see if the pattern was changed (it should not have been), writes the patterns complement, increments the address, and repeats. Starting at the highest address (as opposed to the lowest), it follows the same checklist.

The reason for the second algorithm is due to a few limitations, with the first being that not all adjacent cells are being tested for interaction due to modern chips being 4 to 16 bits wide regarding data storage. With that said, patterns are used to go ahead and ensure that all adjacent cells have at least been written with all possible one and zero combinations.

The second is that caching, buffering and out of order execution will interfere with the moving inversions algorithm. However, the second algorithm used is not affected by this. For starting offsets of 0-20, the algorithm will write every 20th location with a pattern, write all other locations with the patterns complement, repeat the previous one (or more) times, and then check every 20th location for the previously mentioned pattern.

Now that you know how Memtest actually works, it's important to know that the tests it goes through all mean something different. It goes from Test 0 through Test 12, many of which use either one or the other algorithm discussed above, among many other things.

Any other questions, they can most likely be answered by reading this great guide here:

FAQ : please read before posting
 
This looks like a failing CPU to me, 0xAs, 0x124s are quite common in failing CPUs.
Is it under warranty? I'd look at RMAing it.
 
Got the RMA, and new processor should be arriving today. I'll either let you all know if I still get blue screens, or I'll update in about a month if things seem stable. Thanks for all the advice up until this point. :smile9:
 

Has Sysnative Forums helped you? Please consider donating to help us support the site!

Back
Top