RFR(S): 8200078: [Graal] runtime/appcds/GraalWithLimitedMetaspace.java crashes in visit_all_interfaces

Calvin Cheung calvin.cheung at oracle.com
Thu Mar 29 21:28:47 UTC 2018

On 3/29/18, 2:19 PM, mikhailo wrote:
> On 03/29/2018 02:11 PM, Calvin Cheung wrote:
>> On 3/29/18, 1:27 PM, mikhailo wrote:
>>> The test portion looks good to me.
>> Thanks for taking a look.
>>> I have one question - are you able to reliably reproduce this issue 
>>> using GraalWithLimitedMetaspace.java
>> I could reproduce it fairly easily on macosx.
>> On linux-x64 out of 30+ runs, I've seen it passed (CDS dump finished 
>> sucessfully) once. That's why I've added checking exitValue of 0.
>>> or MaxMetaspaceSize.java ?
>> Yes, this one reproduces with small metaspace size in CDS mode not 
>> involving Graal.
>> This test should be very reliable or we will see failure in hs-tier1 
>> testing.
>> The change is for adjusting the expected output because CDS dump will 
>> fail earlier upon OOM.
> The reason I asked this question is: if we are unable to reliably 
> reproduce the issue with existing tests (that is not a 100% 
> reproduction rate), I'd recommend consider creating a regression test 
> specific for this issue, if such test is possible. Could be a simple 
> test that limits metaspace size so much that it is 100% reproduced. 
> However, I understand if this is a timing issue, it may not be an easy 
> test case to create. If so, please put a noreg-hard label on the bug, 
> and add a short comment with explanation.
As I mentioned above, the GraalWithLimitedMetaspace.java can be used to 
reproduce the issue. One needs to enable Graal as described in the bug 
report, i.e. to run it with jtreg, one needs to pass the following option:
-vmoption:-XX:MaxRAMPercentage=10 -XX:+UnlockExperimentalVMOptions 
-XX:+EnableJVMCI -XX:+TieredCompilation -XX:+UseJVMCICompiler 

So I don't think the noreg-hard label is needed for this bug.

> Thank you,
> Misha
>> thanks,
>> Calvin
>>> Thank you,
>>> Misha
>>> On 03/29/2018 10:49 AM, Calvin Cheung wrote:
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8200078
>>>> webrev: http://cr.openjdk.java.net/~ccheung/8200078/webrev.00/
>>>> During CDS dumping, when a class fails to load due to OOM 
>>>> (insufficient metaspace), GC tries to free the class which will in 
>>>> turn frees its _transitive_interfaces. But if the 
>>>> _transitive_interfaces is being shared with another class which has 
>>>> been loaded successfully, it will result in vm crash.
>>>> The change is to stop CDS dumping right away when an OOM due to 
>>>> insufficient metaspace is encountered.
>>>> Testing:
>>>>     hs-tier1 through hs-tiers on Oracle supported platforms.
>>>> thanks,
>>>> Calvin

More information about the hotspot-runtime-dev mailing list