[9] RFR (S): 8060147: SIGSEGV in Metadata::mark_on_stack() while marking metadata in ciEnv
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Oct 30 13:51:25 UTC 2014
Roland,
Good catch! I think you are right.
Threads::metadata_do is called only from MetadataOnStack.
As a solution, _holder can be passed into ciMethod::ciMethod as a
parameter. It should fix the problem.
Best regards,
Vladimir Ivanov
On 10/30/14, 4:48 PM, Roland Westrelin wrote:
>>> _holder = env->get_instance_klass(h_m()->method_holder());
>>>
>>> So if jvmti is enabled, we could safepoint before we set the holder field and the method could be unloaded?
>> Doesn't method handle (h_m) keep it alive?
>
> A comment in handles.hpp says:
>
> // Metadata Handles. Unlike oop Handles these are needed to prevent metadata
> // from being reclaimed by RedefineClasses.
>
> So that doesn’t help with class unloading?
>
> Roland.
>
More information about the hotspot-runtime-dev
mailing list