In this case, it’s not clear that the compiler was really wrong. The results of a floating point calculation differed by a tiny amount, and it’s possible that either was acceptable (I don’t know how strict Java is about its floating point rules). The problem was that I was using the result as a hash key.
But later, I was able to make the JVM reliably dump core (in different memory locations each time). Unfortunately, it was only under extremely heavy load, and I was never able to build a reduced test case.
In this case, it’s not clear that the compiler was really wrong. The results of a floating point calculation differed by a tiny amount, and it’s possible that either was acceptable (I don’t know how strict Java is about its floating point rules). The problem was that I was using the result as a hash key.
But later, I was able to make the JVM reliably dump core (in different memory locations each time). Unfortunately, it was only under extremely heavy load, and I was never able to build a reduced test case.