Tiered compilation leads to "unloaded signature class" inlining failures in JRuby
Charles Oliver Nutter
headius at headius.com
Mon Aug 31 18:38:53 UTC 2020
On Mon, Aug 31, 2020 at 8:53 AM Vladimir Ivanov
<vladimir.x.ivanov at oracle.com> wrote:
> What surprised me is that the absent class which causes the failure is
> java.lang.String. But it turns out java.lang.String is never accessed
> from callee method [1] and hence there are no guarantees it is resolved
> in the context of the context class loader (instance of
> org/jruby/util/OneShotClassLoader) by the time the compilation kicks in.
>
> You can workaround that by forcing j.l.String resolution when
> instantiating the class loader.
I can give this a shot, but if I'm resolving the target method's
class, and that class is using String (there's definitely references
to String in the generated code), why is String still unresolved at
the point where I actually bind the method and call it?
I guess I can't tell whether you're saying "this is not your fault and
here's a workaround" or "this is your fault and this is how you should
fix it".
- Charlie
More information about the hotspot-compiler-dev
mailing list