Request for review(S): 7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Dec 2 10:32:00 PST 2010


Looks good.

vladimir

Igor Veresov wrote:
> Done.
> 
> Webrev: http://cr.openjdk.java.net/~iveresov/7003554/webrev.02/
> 
> igor
> 
> On 12/1/10 9:44 PM, Tom Rodriguez wrote:
>>
>> On Dec 1, 2010, at 9:07 PM, Igor Veresov wrote:
>>
>>> On 12/1/10 8:22 PM, Tom Rodriguez wrote:
>>>>
>>>> On Dec 1, 2010, at 5:42 PM, Igor Veresov wrote:
>>>>
>>>>> C1 with profiling doesn't check whether the MDO has been really 
>>>>> allocated, which can silently fail if the perm gen is full. The 
>>>>> solution is to check if the allocation failed and bailout out of 
>>>>> inlining or compilation.
>>>>
>>>> The logic around build_method_data doesn't look right to me.  Won't 
>>>> it return false if there is already a valid MDO which would cause us 
>>>> to incorrectly bailout?
>>>
>>> Oops :( Right, fixed.
>>>
>>>> Maybe build_method_data should become ensure_method_data and return 
>>>> true if the method has a real MDO, creating it if necessary.
>>>
>>> But that's kind of what it does, except for accessors, etc...? Would 
>>> it be just the name change?
>>
>> Yes it would be just a name change after your fix.  Having a boolean 
>> return from something called build_method_data seems to imply that it 
>> should work the way it did in your original webrev, return true if it 
>> created something.  The name change seems like it would match the 
>> return value better, though I don't feel that strongly about it.
>>
>>>
>>>>
>>>> Shouldn't this assert:
>>>>
>>>> +     assert(md != NULL, "Sanity");
>>>>
>>>> be stronger?  It seems like it should be checking that it's not an 
>>>> empty method data too since those won't have a real object behind 
>>>> them.  Maybe C1 should be using a new method like 
>>>> method_data_or_null() so that it never sees empty method datas.
>>>>
>>>
>>> Good idea, done.
>>
>> Could you put a short comment on method_data_or_null.  Otherwise it 
>> looks good.
>>
>> tom
>>
>>>
>>>
>>> Updated webrev: http://cr.openjdk.java.net/~iveresov/7003554/webrev.01/
>>>
>>> igor
>>>
>>>> tom
>>>>
>>>>>
>>>>>
>>>>> Webrev: http://cr.openjdk.java.net/~iveresov/7003554/webrev.00/
>>>>>
>>>>>
>>>>> Tested with the failing nightly test, specjvm98, and JPRT.
>>>>>
>>>>> Thanks,
>>>>> igor
>>>>
>>>
>>
> 


More information about the hotspot-compiler-dev mailing list