Strange bug inside jetty at shenandoah/jdk8u

Aleksey Shipilev shade at redhat.com
Thu Dec 21 17:55:43 UTC 2017


On 12/21/2017 11:49 AM, Kirill A. Korinsky wrote:
>> On 21 Dec 2017, at 14:23, Aleksey Shipilev <shade at redhat.com> wrote:
>>
>> Smoking gun: the failure is here in HeapByteBuffer:
>>
>>    public byte get(int i) {
>>        return hb[ix(checkIndex(i))]; <--- !
>>    }
> 
> I mentored it at original email ;)

Indeed you have :) My fault for not seeing/remembering right away that checkIndex is the intrinsic.
It comes as testament to our Wiki in "Functional Diagnostics", that mentions how to dissect
compiler-based issues, if one is suspected. The mere fact it fails only with one particular
compiler, and that compiler is baseline C1, is one big smell. If that was a simple Java method
failing -- and I originally thought it is -- it would be a harder deal, because we are supposed to
make the barriers right for plain heap accesses, otherwise *everything* should crash and burn, and
not just one test.

Your effort is appreciated, and it helped to nail the bug!

Roman pushed the fix to sh/jdk10. sh/jdk9, sh/jdk8u and Fedora RPMs would be updated in due course,
but since NY holidays are upon us, I would expect RPMs happen somewhere in January. You may want to
test with our nightly builds, or disable C1 with -XX:-TieredCompilation if working with
Fedora-shipped Shenandoah for a time being.

Cheers,
-Aleksey



More information about the shenandoah-dev mailing list