RFR (XS): 8025566: EXCEPTION_ACCESS_VIOLATION in compiled by C1 String.valueOf method
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Oct 3 19:01:44 PDT 2013
On 10/3/13 6:34 PM, Christian Thalinger wrote:
>
> On Oct 3, 2013, at 4:15 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> Christian,
>>
>> Can you explain how _metadata pointer could be NULL if it was just created and there is check h_m()->method_data() != NULL?
>
> You are right. Since we cannot reproduce this bug it's a guessing game.
>
> Your comment made me go back and look again. The reported error happened with a tier 2 compile and there is a different code path in LIRGenerator::increment_event_counter_impl() for CompLevel_limited_profile compiles:
>
> if (level == CompLevel_limited_profile) {
> address counters_adr = method->ensure_method_counters();
> counter_holder = new_pointer_register();
> __ move(LIR_OprFact::intptrConst(counters_adr), counter_holder);
>
> Method::ensure_method_counters() tries to build a MethodCounters data structure if it's null but:
>
> counter = Method::build_method_counters(mh(), CHECK_AND_CLEAR_NULL);
>
> it clears the exception and returns null!
Right. This is it! And the only place where result is checked for null callers of get_method_counters(). All other
places which call build_method_counters() do not check.
Vladimir
>
> I really want C++ exceptions in the compiler…
>
>>
>> Thanks,
>> Vladimir
>>
>> On 10/2/13 8:17 PM, Christian Thalinger wrote:
>>> https://bugs.openjdk.java.net/browse/JDK-8025566
>>> http://cr.openjdk.java.net/~twisti/8025566
>>>
>>> 8025566: EXCEPTION_ACCESS_VIOLATION in compiled by C1 String.valueOf method
>>> Reviewed-by:
>>>
>>> The problem is in ciMethod::ensure_method_data(). The call to ciMethodData::load_data() can fail when the backing metadata pointer is null and return with a still empty method data. So we have to check here for non-emptiness.
>>>
>>> I also removed ciMethodData::set_mature(). This method was only used with the old JSR 292 implementation.
>>>
>
More information about the hotspot-compiler-dev
mailing list