4

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

6
  • 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. Jan 11, 2012 at 20:56
  • Can you add details about your server? Brand, model, ...
    – Nils
    Jan 11, 2012 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, 2012 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, 2012 at 10:25
  • @JeffFerland did run memtest which comes with the OpenSuse installation disk. It did not detect any errors.
    – x-man
    Jan 12, 2012 at 10:26

5 Answers 5

7

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.

2
  • 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, 2012 at 22:54
  • @techie007 as I said in the questions, its a kit, so I don't mix chips.
    – x-man
    Jan 12, 2012 at 10:28
3

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

2

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.

2

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.

0

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .