PDA

View Full Version : glibc detected double free or corruption & corrupted double-linked list


wardbergmans
11-03-2010, 14:17
Hello,

We get the following glibc errors in our log, then the containers go down.
Do you know the possible cause or solution?


Logging of container1:

--------
10/03/08 11:53:55 Start process
--------
10/03/08 11:54:13 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 11:55:25 Access SDK initialized successfully!
*** glibc detected *** double free or corruption (fasttop): 0x08a9a360
***

--------
10/03/08 12:13:25 Start process
--------
10/03/08 12:13:43 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 12:13:47 Access SDK initialized successfully!
*** glibc detected *** double free or corruption (fasttop): 0xbe9508a0
***

--------
10/03/08 12:29:23 Start process
--------
10/03/08 12:29:45 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 12:31:01 Access SDK initialized successfully!

Logging of container2:

--------
10/03/08 12:07:59 Start process
--------
10/03/08 12:08:17 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 12:10:10 Access SDK initialized successfully!
*** glibc detected *** corrupted double-linked list: 0xbea75c38 ***

--------
10/03/08 12:12:15 Start process
--------
10/03/08 12:12:33 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 12:13:24 Access SDK initialized successfully!
*** glibc detected *** double free or corruption (fasttop): 0xc6207f30
***

--------
10/03/08 12:29:08 Start process
--------
10/03/08 12:29:27 Oracle Containers for J2EE 10g (10.1.3.4.0)
initialized
10/03/08 12:29:33 Access SDK initialized successfully!

kjkoster
11-03-2010, 14:29
Dear Ward,

This is a platform issue. You libc is complaining that some code did a double free of a pointer (which is a programmer error). Essentially this is an assertion failure.

Are you linking c-based libraries into your Java program? Does Oracle do that? What is that access sdk thing in the error message? What OS is this? What JVM vendor and version?

In some systems you can switch off these assertions by adding "export MALLOC_CHECK_=0" to the startup script of your app server, somewhere before the JVM runs.

Kees Jan

kjkoster
11-03-2010, 15:01
Before I forget: Please note that "export MALLOC_CHECK_=0" disables the check and the warning. It does not resolve the bug you run into. It just makes glibc not warn you about it.

wardbergmans
15-03-2010, 14:35
Thanks for your fast reply Kees Jan!

The Java program doesn't explicitly link any c-based libary. (Maybe a dependency does, but I can't find information about that.)

If Oracle links a c-based libary? Interesting question! :) We pay a lot for Oracle support, so'll see if we can ask Oracle this question and get an usefull answer...

The OS is:
Linux is Redhat Enterprise Linux 4 Server
Linux 2.6.9-67.0.15.ELsmp x86_64 x86_64 x86_64 GNU/Linux

The GNU libc version is: ldd (GNU libc) 2.3.4

The JVM vendor is: Sun
The JVM version is:
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)

My next step would be: Call Oracle support and ask them what the cause of these error messages are.

But before I do that I'm wondering if you've got any suggestion of what we could try to solve the problem our selves.

wardbergmans
15-03-2010, 14:38
Before I forget: Please note that "export MALLOC_CHECK_=0" disables the check and the warning. It does not resolve the bug you run into. It just makes glibc not warn you about it.

I prefer making the problem go away, instead of only the symptoms ;)

kjkoster
15-03-2010, 21:54
Dear Ward,

I expect glibc to be clever enough to simply ignore the double free it detected. I'd say, run with the setting until Oracle gave you a proper fix.

Note that Java 1.5 is rather old, you may want to consider upgrading to the latest 1.6. You'll get a nice performance boost too, see Barry's earlier post on that subject (http://java-monitor.com/forum/showthread.php?p=1970#post1970).

Kees Jan