RFR(S): 8016277: Crash in nmethod::is_compiled_by_c1() on x86
vladimir.kozlov at oracle.com
Wed Aug 21 10:44:00 PDT 2013
Why do we need asserts at all in is_compiled_by_* methods?
On 8/21/13 1:01 AM, Roland Westrelin wrote:
> Once an nmethod becomes zombie, its Method can be reclaimed so the reference to the Method in the nmethod becomes invalid.
> My change sets the nmethod's _method to NULL once the nmethod is in the zombie state so that we risk using an invalid reference. The crash itself was cause by nmethod::is_native_method() (which uses the Method pointer of the nmethod) called from nmethod::is_compiled_by_c1() by some verification code. I changed the implementation of the nmethod::is_compiled_by_* so that they don't need to call is_native_method() (a call that was anyway useless because for a native method the compiler() is NULL).
More information about the hotspot-compiler-dev