RFR (S): 8060147: SIGSEGV in Metadata::mark_on_stack() while marking metadata in ciEnv
vladimir.x.ivanov at oracle.com
Wed Oct 29 13:57:53 UTC 2014
ciObjectFactory doesn't keep cached Metadata* alive. ciMetadata is
different from ciObject - it doesn't store JNI handle, but a raw
In order to avoid Metadata* vanishing during compilation, I cache
ciObject for it's holder, which should keep corresponding Metadata*
alive. Cached objects have the same lifetime as the owning
ciObjectFactory (no cache pruning), so Metadata* will be available as
long as ciObjectFactory instance is used.
Also, cleaned relevant comments and strengthened some asserts (since
NULL keys are not allowed).
Testing: jprt, stress mode - full Nashorn/Octane with aggressive VM
anonymous class unloading (LambdaForm/MethodHandle caching completely
More information about the hotspot-compiler-dev