RFR(S): 8200078: [Graal] runtime/appcds/GraalWithLimitedMetaspace.java crashes in visit_all_interfaces
mikhailo.seledtsov at oracle.com
Thu Mar 29 21:19:25 UTC 2018
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
> 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
>> Thank you,
>> 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.
>>> hs-tier1 through hs-tiers on Oracle supported platforms.
More information about the hotspot-runtime-dev