Google

2009-09-26

CPU Fan Error Thriller - The Saga Continues

After my post about the error "CPU Fan Error!", I had two days without any issues but today error is back. I had left my computer on for a couple of hours and apparently it went into deep sleep mode (S3). I came back and moved the mouse - nothing happened! O_o
Then, I hit the keyboard, knowing it would not help... I had one option left, Power button to wake up the PC.

It did wake up but really like an annoyed person coming back from deep sleep. Fans roared full speed for 15 secs; then a brief silence as if power went off... Finally a blinking cursor on the screen and BIOS messages showing up. Unfortunately, BIOS messages stopped at some point as before and after 20 secs of silence I saw the familiar message printed on the screen:
"CPU Fan Error!
Press F1 to continue.

I hit F1 and loaded Win7 but I knew what was coming: 'computer freeze every other second'...

So, I rebooted and decided to disable Q-Fan again but I failed to hit "del" key to go into BIOS on time and noticed a new message:
Overclocking Failed! Please enter Setup to re-configure your system

In fact, these two messages seems to be related. My system has arrived overclocked from Falcon Northwest; I know that because they mentioned every single BIOS change they made in their documentation (kudos). When a system is overclocked, it may generate more heat; again referring to incapacity of the fan to do its job...

The reason I had bought the system was WoW but I quit WoW a couple of months ago. So I turned overclocking off as I do not need the every piece of cpu cycle these days.

Of course, it is still bothering me that this is happening; and I am not totally convinced that this is a hardware story. It could very well be that Win7 has something to do with this. I am, for example, noticing some other "System" errors in Event Log like
"The NVIDIA Display Driver Service service has reported an invalid current state 32"
There was a report in nVidia forum today that problem was resolved after installing latest Win7 beta drivers. I have not however seen the same issues reported there.

At this point, I thought I should switch to something more productive and do some investigation with PowerShell, like when did these messages appear and how many of them were in system log:

get-eventlog system -entry error  |where {$_.message -match "nvidia"} |ft -auto
Index Time         EntryType Source                  InstanceID Message
----- ----         --------- ------                  ---------- -------
74903 Sep 26 19:04 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
74614 Sep 25 00:03 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
74456 Sep 24 23:07 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
74343 Sep 24 23:04 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
74198 Sep 24 22:57 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
74037 Sep 24 22:31 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
73887 Sep 24 22:02 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
73758 Sep 24 21:58 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
73399 Sep 22 00:06 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...
73164 Sep 21 00:02 Error     Service Control Manager 3221232488 The NVIDIA Display Driver Service service has report...

So, apparently this nVidia problem is also a recent phenomenon. I checked Microsoft's documentation on event id and did not see anything to worry me. So, I went back to PowerShell and started playing with it a bit more...

How many errors did my system have in System Log?

(get-eventlog system -entry error).count
39

Some people actually doing that in a different way. First get the events from log & then count them:

$events=get-eventlog -logname system -entryType error # I used the long notation here
$events.count
39

I actually like that "(something).property" way of getting properties but assigning it to a variable first is much more useful if you will re-use the object. For example, if I wanted to find out what sources generated these errors (i.e. group them):

$events |group source |FT count,name -auto #It centered the output without -auto

Count Name
----- ----
   20 DCOM
   11 Service Control Manager
    3 HECI
    3 EventLog
    2 Serial

Or if I wanted to see only certain fields:

$events |ft TimeGenerated, Source, Message -Auto

TimeGenerated         Source                  Message
-------------         ------                  -------
9/26/2009 7:10:33 PM  DCOM                    The description for Event ID '-1073731808' in Source 'DCOM' cannot be ...
9/26/2009 7:04:13 PM  Service Control Manager The NVIDIA Display Driver Service service has reported an invalid curr...
9/26/2009 7:03:31 PM  HECI                    HECI driver has failed to perform handshake with the Firmware.
9/26/2009 7:03:40 PM  EventLog                The previous system shutdown at 5:09:01 PM on ?9/?26/?2009 was unexpec...
9/26/2009 2:39:20 PM  DCOM                    The description for Event ID '-1073731808' in Source 'DCOM' cannot be ...
9/25/2009 12:03:26 AM Service Control Manager The NVIDIA Display Driver Service service has reported an invalid curr...
...

Btw, did you also notice that in the first example I only typed "entry" instead of "entryType", that's because you can type the minimum number of chars sufficient enough for PowerShell to identify which parameter you meant.

I also tend to skip default parameter names. For example, default parameter for "get-eventlog" is of course EventLog name which is represented by "-logname string" parameter. You can skip -logname if nobody else will read your code:

get-eventlog system

As usual to get list of event logs simply type:

get-eventlog -list

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  20,480      0 OverwriteAsNeeded       1,142 Application
  15,168      0 OverwriteAsNeeded           0 DFS Replication
  20,480      0 OverwriteAsNeeded           0 HardwareEvents
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
   8,192      0 OverwriteAsNeeded         127 Media Center
  16,384      0 OverwriteAsNeeded           0 ODiag
  16,384      0 OverwriteAsNeeded         263 OSession
                                              Security
  20,480      0 OverwriteAsNeeded       4,321 System
     512      7 OverwriteOlder            415 Windows PowerShell

help get-eventlog -examples
has several examples for common scenarios.
Fin!

No comments: