RFR (M): 7157365: jruby/bench.bench_timeout crashes with JVM internal error
vladimir.kozlov at oracle.com
Thu Jun 14 15:53:05 PDT 2012
Can you move duplicated code in callGenerator into separate method?
Christian Thalinger wrote:
> 7157365: jruby/bench.bench_timeout crashes with JVM internal error
> The problem manifests itself as an assert in escape analysis code:
> assert((ptnode_adr(adr->_idx) == NULL || ptnode_adr(adr->_idx)->as_Field()->is_oop())) failed: sanity
> The out-of-line code for invokedynamic instructions loads the CallSite object
> from the constant pool cache. Since the constant pool cache contains data
> other than oops we return the type as byte and load the oop as raw pointer.
> Escape analysis notices this misbehavior and bails out.
> The best possible fix for now is to define the constant pool cache base
> pointer as an oop array and load a raw pointer from there.
> Note that this is more of a temporary fix since the perm-gen removal will fix
> this problem in a more correct fashion.
More information about the hotspot-compiler-dev