Request for review(S): 7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer
Igor Veresov
igor.veresov at oracle.com
Wed Dec 1 21:07:01 PST 2010
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?
>
> 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.
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