RFR(S): 8182868: [MVT] Crash during call resolution with "fatal error: bad call: invokehandle"
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Jun 27 10:49:42 UTC 2017
Hi,
please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8182868
http://cr.openjdk.java.net/~thartmann/valhalla/vt_prototype/webrev.24/
Problem 1:
We crash while resolving an invokehandle call because the code does not expect an attached method for this bytecode. I modified the code to ignore the attached method in this case because we only need it for the GC code in CompiledMethod::preserve_callee_argument_oops() and not for the resolution.
Problem 2:
We fail with "assert(signature != __null) failed: signature is null" in CompiledMethod::preserve_callee_argument_oops() because the callee takes a value type argument but the adapter does not contain the extended signature. This is because we pass __Value as oop and adapter generation therefore does not save the extended signature. I changed set_arguments_for_java_call() to only attach the method if we really pass the value type as fields and also adjusted the code in preserve_callee_argument_oops() to handle the case where the is no attached callee method.
Thanks,
Tobias
More information about the valhalla-dev
mailing list