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

Tom Rodriguez tom.rodriguez at oracle.com
Wed Dec 1 20:22:16 PST 2010


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?  Maybe build_method_data should become ensure_method_data and return true if the method has a real MDO, creating it if necessary.

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.

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