[OpenJDK 2D-Dev] JVM crash in libc pre JDK7

Phil Race Phil.Race at Sun.COM
Wed Feb 6 19:26:43 UTC 2008

libdcpr.so is third party code that couldn't be included in openjdk,
so there is a different, but lower-performing, replacement. Granted
it doesn't crash for you, but it could have its own problems as
its relatively untested.

This only applies to openjdk. If you download the jdk7 commercial
binary builds (pre-release of course), from http://download.java.net/jdk7/binaries/
then you'll likely find it has the same problems as jdk6.
So I don't know of any patch.

Yes, there have been similar reports, with the common thread
that they are mighty hard to reproduce.

Precisely how did you use SwingSet over those two hours to produce the crash?

What O/S and version are you using?


Ben Cheng wrote:
> Not sure this is the right place to ask this question, but I am going to 
> give it a try.
> We are seeing some JVM crashes in libc malloc()/free() invoked from 
> libdcpr.so with Java 6. After browsing the bug database there are a few 
> similar ones as described in 6510993 and 6645511. I used the SwingSet2 
> example from 6510993 as the benchmark and I usually can reproduce the 
> crash within a couple hours, but for some reason the crash is simply not 
> reproducible with openjdk7.
> With server VM build 1.6.0-b105 the stack trace in the core file looks 
> like the following:
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x4bdce9a1 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0x4bdd02b9 in abort () from /lib/tls/i686/cmov/libc.so.6
> #3  0x0643b36b in os::abort ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/server/libjvm.so
> #4  0x0651c431 in VMError::report_and_die ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/server/libjvm.so
> #5  0x0643f7a0 in JVM_handle_linux_signal ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/server/libjvm.so
> #6  0x0643d058 in signalHandler ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/server/libjvm.so
> #7  <signal handler called>
> #8  0x4be0863b in malloc_consolidate () from /lib/tls/i686/cmov/libc.so.6
> #9  0x4be09653 in _int_malloc () from /lib/tls/i686/cmov/libc.so.6
> #10 0x4be0b411 in malloc () from /lib/tls/i686/cmov/libc.so.6
> #11 0xb263a1c5 in doeMem_malloc ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/libdcpr.so
> #12 0xb2643c61 in setOutputArea ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/libdcpr.so
> #13 0xb263cdf4 in Java_sun_dc_pr_PathFiller_setOutputArea ()
>    from /auto/buildtools/java/jdk1.6.0/jre/lib/i386/libdcpr.so
> I checked the openjdk7 code structure and found that heavy redesign 
> seems happening under sun/dc, as everything below pr is simply gone. 
> That makes me believe that whatever the problem is on Java 6 it is 
> likely to be related to the implementation under pr.
> Here comes my main question: for people who rewrite sun/dc for openjdk7, 
> do you happen to know any patch to workaround the crashes in Java 6? We 
> are happy to try any patch to eliminate the annoying JVM crashes.
> Thanks,
> -Ben

More information about the 2d-dev mailing list