Wednesday, December 31, 2008

A server compiler crash during loop optimization

I encountered a server compiler crash which happens in a Google server. Here's a link to more details:

http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2008-September/000320.html

It appears to happen in the split-if graph transformation during the loop optimization. It only happens in a big Java server and I couldn't create a small test for the crash. I was able to create a small patch as a workaround that detects the crash condition early and aborts the JIT compilation of the particular method.

It is, unfortunately, often the case of JVM crashes only happen in an entire application run (production code) and they are not reproducible in tests. One possible reason is that only some particular method inlining patterns trigger crash during JIT compilation.

No comments: