Why does JVM 1.6.0_26 crash shortly after startup with SIGSEGV?
Asked by Frank Thiergarten:

Hey,   

for the last year and a half I have maintained a small (20 User) confluence installation within an entreprise.  
Just recently the VirtualMachine the server which the confluence instance was running on experienced a kernel panic.  
I cannot give any info about the nature of this panic since I'm only the admin of my small virtual confluence server.  

Shortly (I do not know if it was right after the complete shutdown) afterwards I got informed that the wiki wasn't running anymore.  
I investigated the issue and found out that the JVM had crashed due to a SIGSEGV error.  
So the server was restarted and confluence ran for 5-10 minutes.  
However, the error reoccured. Neither an increase of available memory (from 1 to 2 gb) nor a completely new installation of all components solved this issue.  

So these are the server specs: Server: VMWare Debian6 2.6.32-6-pve 32Bit 2gb ram.  
Confluence: 3.5.1 with sun-java6-jdk 1.6.0_26 (1.7 was also tested)  
DB: PostgreSQL  

Here are the errors as in the catalina.out log:  
Although it is stated here I used openjdk the same error applies when using java-jdk!!  
#  
# A fatal error has been detected by the Java Runtime Environment:  
#  
# SIGSEGV (0xb) at pc=0x012ef67d, pid=12927, tid=3063028592  
#  
# JRE version: 6.0_18-b18  
# Java VM: OpenJDK Client VM (14.0-b16 mixed mode, sharing linux-x86 )  
# Derivative: IcedTea6 1.8.9  
# Distribution: Debian GNU/Linux 6.0 (squeeze), package 6b18-1.8.9-0.1\~squeeze1  
# Problematic frame:  
# VException in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" \[libjvm.so+0x34167d\]  
#  
# An error report file with more information is saved as:  
# /usr/local/confluence/confluence-3.5.1-std/hs_err_pid12927.log  
java.lang.IllegalMonitorStateException  
at java.lang.Object.wait(Native Method)  
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)  
#  
# If you would like to submit a bug report, please include  
# instructions how to reproduce the bug and visit:  
# [http://icedtea.classpath.org/bugzilla\<br\< a=""\> /\>#
AND
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (nmethod.cpp:2175), pid=15452, tid=3016321904
# guarantee(nm-\>_lock_count \>= 0) failed: unmatched nmethod lock/unlock
#
# JRE version: 6.0_26-b03
# Java VM: Java HotSpot(TM) Client VM (20.1-b02 mixed mode, sharing linux-x86 )
# An error report file with more information is saved as:
# /bin/hs_err_pid15452.log
#
# If you would like to submit a bug report, please vis...](http://icedtea.classpath.org/bugzilla%3Cbr)[http://java.sun.com/webapps/bugreport/crash.jsp\<br\< a=""\> /\>#
<br />
I also played around with the setenv.sh JAVA_OPTS values (I thought it was a memory problem first)
Here are my current values:
JAVA_HOME="/usr/lib/jvm/java-6-sun"
export JAVA_HOME
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m $JAVA_OPTS -Djava.awt.headless=true "
export JAVA_OPTS
So if any of you have any idea please let me know.
I followed some suggestions in the help section, but those problems where like years away and are fixed in c...
<br />
<br />](http://java.sun.com/webapps/bugreport/crash.jsp%3Cbr)


Answers:
author: Radu Dumitriu
body: OpenJDK is not very stable. You should use Sun\^H\^H\^HOracle JDK.

SEGMENTATION FAULT is usually the consequence of accessing memory with an invalid address (there may be other causes). Usually there is an uninitialized pointer, a programming mistake anyway.

Open JDK is not supported by Atlassian.

comments: author: Frank Thiergarten
body: Thanks for the prompt response:  
Of course I included the one error message when trying to use openjdk instead of sun's java.  
However the proplem also occurs with sun.  

<br />


author: Radu Dumitriu
body: Sorry, I didn't see you tried 6.0.26. Try to change the version (latest is .29, if I remember well).

Since there's no open bug on [bugs.sun.com](http://bugs.sun.com), I assume your environment has a lot to do with this problem. This is why you should avoid using virtual machines.

In the past, VMWare guests caused me a lot of trouble.


author: Frank Thiergarten
body: Am currently testing with 29, runs for 15 minutes now. New highscore at least...  
Will post if that solved it


author: Radu Dumitriu
body: well? are you celebrating with beer or are you crying your pain out ?


author: Frank Thiergarten
body: I am shipwrecked in the pool of tears I cried...  
Now we might chance the kernel and/or the distro to wipe that error out.


author: Radu Dumitriu
body: Unfortunately, your problem lies within the VMWare. At one of our customer's sites, we have WMWare 4.x and 5.x. Both with the same problems (crashes). We installed a non-virtualized machine and guess what? our problems were just blown away in no time.

If you need to install it on VMWare, make sure you have the latest patch. 4.x worked for another install after some tweakings in host and guest.


author: Frank Thiergarten
body: Yes, you are propably right. Just installed it on CentOS and the error reproduced.  
But why did it run before for a year without any problem? did we just have a very lucky streak?  
Maybe I can set up an exclusive machine for the confluence install. well actually that seems to be the only thing i can do...  
Thanks for your help anyway!


author: Dieter
body: I also had spurious crashes of whole 32 bit virtual machine on VMWare . we use Oracle JDKs.. Until today there was no explanation for this from VMWare. The problems finally went away after switching to 64 bit RHELfrom what i read here i start to believe that running Tomcat on a 32 bit Linux on VMWare is not a good idea.


Tags: jvm