Friday, March 30, 2007

JRockit hangs itself... any advice?

UPDATE: Found out the problem. We are not on a system which supports NPTL and this blog entry explains why this is bad with JRockit.

Any advice on options to apply for further debugging on this issue?

I have a problem with JRockit freezing/hanging when under heavy load. It does not crash, but it looks like it is spinning on the CPU. The CPU is a XEON with hyper threading, so it is viewed as two CPUs on our linux host.

Here is the scenario:
  • Suddenly, CPU goes up to 50% and stays there (looks like JRockit is spinning/busy looping on the one "cpu")
  • While spinning at 50% CPU, the heap keeps growing until it hits max
  • The application and JRockit stops responding (but it does not crash)
  • There is no information on stdout or stderr. Also no information in weblogic.log
The setup
  • BEA WebLogic 5.1
  • SuSE Linux 9.0 (*not* enterprise linux)
  • Kernel: 2.4.21_166, SMP 4G
  • JRockit v26.4.0.63 (JDK 1.4.2_11)
  • XEON 3GHz with HT
  • JAVA_OPTIONS="-jrockit -Xms512m -Xmx512m -Djrockit.ctrlbreak.enableforce_crash=true"
Has anyone else experienced this or things like it? I've found many issues about JRockit crashes (which actually gives some information to work with), but our process is not crashing. It just freezes/hangs and uses a lot of CPU.


Anonymous said...

Thread dump?

Per Olesen said...

Think I found out what the problem is.

Henrik Stahl has written an entry about a problem with JRockit on Linux when using the old "thread" library (the clone() system call). The newer (>=2.6) linux kernel is using NPTL.

We are only running an old 2.4 kernel. The blog entry contains a test program, which hangs if the problem is on your system.

Sure enough, it hangs...

yagmurunsesi said...


Anonymous said...

It happens when I am on the JRockit Console Overview page. My CPU jumps to 50%.

If I swith to another page the CPU goes down dramatically.

Confirmed using Top unix command and seeing the processor graph after switching back.