How do I test hardware components to find out which one is bad?


I have an old machine running debian as a file server using samba. The other day I was unable to login to my file server. When I looked at the screen on my debian server this is what I saw:

enter image description here

It says its a hardware error and kinda looks like it's a bad CPU. However, I don't want to run out and buy a new CPU because I really have no idea what I am talking about.

Here is what I have done:

  • I tested the memory using memtest 86+ for 66 hours straight. It passed 65 times and found 0 errors. So I think bad memory is out of the question. However, I was kinda curious why it didn't crash during those 66 hours if there was some other error on the system.
  • I noticed it said java Tainted so I thought it might be a java issue. I disabled CrashPlan Backup service since it uses java. The server ran great for 4 days. (Usually it crashed every 15-30 minutes) During the time while I had crashplan off I had two computers connect to the server, get 50 GB of HD video, encode it and place it back on the servers hard drives. Didn't have any issues. Then a day later it crashed again.

Should I just assume it's a CPU issue since it mentions that?

How do I test hardware components to find out which one is bad?

  • No relation with java, except that it was the active process (comm = command) when the MCE was raised. This is probably a coincidence, and even if the crash was triggered by Java, the ultimate cause of an MCE is hardware. – Gilles 'SO- stop being evil' Jul 31 '12 at 22:59
  • Well I don't think it was coincidence. Every time it crashed I got this same error. Is this error related to java? Could java be causing the error? – zechdc Aug 1 '12 at 0:03

If your hardware is from a big vendor, say HP, Dell and so, they might have specific tools for what you're looking. I use to work with HP and they already have tools for reporting bad hardware.

If that's not the case, then it'll be trickier (based on my experience), you already started well testing memory as it uses to be a usual failing point.

Now if you doubt from you CPUs, you could expose them to an intensive job like compiling a kernel or any other big source like libreoffice, xorg, etc...you can use CPU affinity if you've got several CPUs.

Also, the error message is suggesting you to run "mcelog --ascii", you could do it and try to understand the messages, please read both links below I hope they'll help you with your HW problem:



|improve this answer|||||
  • Thanks for the great advice on how to trouble shoot this issue. In the end I went with @2bytes method of throwing the machine away and getting a new one. In my case, the machine wasn't honestly worth the time. It was just an old machine to learn linux on. Was just hoping there was an easy fix for this kind of thing. Thanks again. – zechdc Aug 1 '12 at 0:02

Hardware issues on any machine can be troublesome to trace, especially older systems.

An MCE or Machine Check Exception is a non-human readable error code generated by the CPU itself when a hardware error is detected. This could include errors with the RAM, processor cache, or any device on the system bus. Locating the issue on older processors is usually only possible through trial and error (or memory a test if your lucky).

Some newer processors give a bit more intelligible MCEs but it looks like your's is probably an old AMD. Mcelog is a Linux daemon that can decode MCEs for modern x86 processors, that would probably be your only hope for making any some sense of the MCE.

Your best bet considering the time you already put into it is to replace the Mother Board/CPU/Memory with an equally old and cheap setup but that still functions. :)

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.