Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a java process that is aborted after a while with SIGSEGV. It started to happen after I upgraded the server with more RAM. Having tested on different JVMs I suspect it might be a hardware problem. But no problem was detected by memtest86.

So, what else can I do to detect the source of the problem is? Should I take the RAM modules one by one to detect the faulty module?

The server is running on 64bit OpenSuse11.3.

The memory is not an ECC one it seems. I have a kit of this (3*4GB * 2 = 24GB):

http://www.kingston.com/datasheets/KHX1600C9S3K2_8GX.pdf

share|improve this question
5  
I just reflexively answered with a suggestion to run memtest86+ on it... If you don't find it with memtest, I don't know of any better tool. Segfaults indicate memory boundary issues and may be caused with or without hardware issues. It shouldn't happen in a JVM (or any properly written piece of software), but if you can't confirm a hardware issue with memtest, I'd start looking back at the software. –  Jeff Ferland Jan 11 '12 at 20:56
    
Can you add details about your server? Brand, model, ... –  Nils Jan 11 '12 at 21:02
1  
One more vote for memtest86+, can be found on a variety of LiveCD's and utility boot floppies/CD's. –  Tim Jan 11 '12 at 21:08
    
@Nils its self built. What info do you need? It used to run perfectly until we upgraded with more RAM. –  x-man Jan 12 '12 at 10:25
    
@JeffFerland did run memtest which comes with the OpenSuse installation disk. It did not detect any errors. –  x-man Jan 12 '12 at 10:26
show 1 more comment

5 Answers

We run Memtest86+ against new systems for 48-72 hours, and over the years we've caught plenty of errors that didn't show until the 2nd or 3rd day. A couple/few passes just aren't enough.

Also, don't mix ECC and non-ECC, and yes, you'll probably have to remove/juggle/retest the RAM modules to find the culprit.

share|improve this answer
1  
+1 for not mixing chips. Once Memtest identifies a bad chip pull it (and its paired mate) and repeat the test to ensure the error went away. You can also put a known good chip in that socket to ensure it's not a motherboard/socket problem. –  voretaq7 Jan 11 '12 at 22:54
    
@techie007 as I said in the questions, its a kit, so I don't mix chips. –  x-man Jan 12 '12 at 10:28
add comment

Remember that segfaults are typically due to programming bugs like buffer overrun, use after free and null pointer dereference.

share|improve this answer
add comment

One more suggestion, about Memtests86+. Memtest will check all the memory for sure but sometimes the harware failure only shows when the temperature conditions of the machine reach certain levels. And memtest doesn't stress the disks and other parts of the system.

If you think that temperature could be a problem try to run memtest under worse temperature conditions than the usual.

share|improve this answer
add comment
up vote 2 down vote accepted

After having looked at the BIOS settings, there was an alternative "System memory multiplier" which was set to 12. I changed this setting to "Auto", the crash does not happen any more. So, I thought it might help for others having similar issues.

share|improve this answer
add comment

there is one application which can help you to check for errors in RAM while you are running your system. I mean you no need to restart your system and by stopping your work. RAM checking and your work can run parallel .named as

memtester

If you are installing Ubuntu , you can install it

sudo apt-get install memtester
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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