RFR(S): 8190797: OSR compilation fails with "assert(__the_thread__->can_call_java()) failed: can not load classes with compiler thread"
tobias.hartmann at oracle.com
Fri Nov 10 08:35:52 UTC 2017
could I please get a second review from the runtime team?
On 08.11.2017 08:58, Tobias Hartmann wrote:
> Hi Vladimir,
> thanks for the review!
> Best regards,
> On 07.11.2017 19:56, Vladimir Kozlov wrote:
>> Looks good.
>> On 11/7/17 4:04 AM, Tobias Hartmann wrote:
>>> please review the following patch:
>>> When oop map creation fails, we try to throw a LinkageError to propagate the error message. If this happens in the
>>> compiler thread (for example, during OSR compilation), we fail because a compiler thread cannot initialize an exception
>>> I've fixed this by bailing out with a meaningful message in case !Thread::can_call_java(). Please note that even if we
>>> are able to instantiate an exception, we will still fail with ShouldNotReachHere because compute_map(TRAPS) is called
>>> with CATCH (see comments in the bug for a detailed explanation). This fix is not about changing this behavior but to
>>> fail with a meaningful error message during compilation. This should only happen if something is seriously broken (for
>>> example, incorrect bytecode with -noverify, see TestLinkageErrorInGenerateOopMap). In this case we would probably hit
>>> other issues as well if we would continue execution.
More information about the hotspot-compiler-dev