Request for reviews (M): 7090904: JSR 292: JRuby junit test crashes in PSScavengeRootsClosure::do_oop
tom.rodriguez at oracle.com
Tue Oct 18 12:02:32 PDT 2011
On Oct 18, 2011, at 1:51 AM, Christian Thalinger wrote:
> 7090904: JSR 292: JRuby junit test crashes in PSScavengeRootsClosure::do_oop
> A couple of JRuby junit tests crash in various forms (mostly GC
> related) when running on 64-bit Linux. Although it looks like a GC
> related problem it actually is a deoptimization bug.
> Tom already had a fix ready but we were unable to write a test case to
> prove the correctness of the fix. An assert added in
> AbstractInterpreter::layout_activation shows that the JRuby crashes
> are indeed an incarnation of this deoptimization bug.
> The bug itself is in the deoptimization logic that calculates the size
> of parameter space in the caller frame. Method handle invokes may
> involve fairly arbitrary chains of calls so it's impossible to know
> how much actual space the caller has for locals.
I think we need to check for MethodHandle.invoke in addition to invokeExact.
> The fix is to always assume zero parameters for method handle call
> Extensive testing with JRuby junit tests.
More information about the hotspot-compiler-dev