On 29 Jul 2011, at 23:05, Mark Derricutt wrote:

> Yes, but you can work around it by using:
> 
> -XX:-UseLoopPredicate 
> 
> I'm getting tired already of seeing many sites ranting about this bug without 
> mentioning the work around described in the actual Oracle bug tickets.
> 
> The tests that actually uncovered the problems were only written last month:
> 
>  https://issues.apache.org/jira/browse/LUCENE-3079
> 
> I've not looked at the tests/patches yet but I'm curious as to what they're 
> doing that managed to uncover this problem, and just how likely it is to hit 
> in normal day-to-day code that no other tests fails/hit it.

That's the problem with a lot of JIT bugs - it can be hard to say what other 
applications might encounter it, often it just seems like bad luck.

Back in January I debugged an infinite loop on a remote server. I tracked it 
down to a simple method involving an array and a counter, but couldn't see any 
way the loop could ever happen. Turns out the c2 JIT in 1.6.0_23 left out an 
increment instruction when it compiled the method :/ The workaround was to 
replace:

   members = views[viewIndex++].members( clazz );   // this was the increment 
that the JIT left out

with:

   members = views[viewIndex].members( clazz );
   viewIndex++;

Unfortunately reducing this to a simple test class was impossible, since any 
change to the surrounding methods (which were also relatively simple) made the 
problem go away. I filed a bug report via bugs.sun.com and got a review number 
(1965196) but never heard anything since then - hopefully they fixed it!

JIT/JVM crashes I don't mind because at least you know there's been a problem, 
it's the silent bugs (such as missing/incorrect instructions) that scare me.

That said, this was the first JIT bug I'd encountered in many years...

--
Cheers, Stuart

> Mark
> 
> 
> 
> On 30/07/2011, at 1:10 AM, Michael Barker wrote:
> 
>> It's annoying, I was hoping to drop it into our CI environment next week...
>> 
>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/javaposse?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to