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