Murex detected a JVM 64-bit crash on recent JDK6 (jdk1.6.0_27, jdk1.6.0_30 and jdk1.6.0_31) on sol-x86 and Linux (works fine on Sparc). It can be reproduced with the attached files. The core stack is also attached (jvmCrash.stk).
The code that revealed the crash is in the function 'run' hereafter. The line 'glob.getKey();' is never executed but the program doesn't crash if it is commented out.
public void run(Glob glob) throws Exception {
int missing = 0;
int zero = 0;
double[] doubles = glob.get(field);
for (double v : doubles) {
if (v == 0.) {
zero++;
}
}
if (zero == scenarioCount) {
==> glob.getKey();
}
}
Notes:
- The crash only occurs in 64 bit mode
- The crash happens on Solaris-x86 and Linux but *not* on Sparc
- The tested OS are:
* Solaris X86: Solaris 10 11/06 s10x_u3wos_10 X86
* Linux: Linux 2.6.9-42.ELsmp #1 SMP ... Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
* Solaris SPARC: Solaris 10 8/07 s10s_u4wos_12b SPARC
How to reproduce:
% java -d64 -cp prgMRA.jar:erm-globs.jar ProgramMRA
If the "glob.getKey();" line is commented the crash doesn't occur, to check this, you can run the command below:
% java -d64 -cp prgMRA.jar:erm-globs.jar ProgramMRANoCrash