RFR(S): 8200078: [Graal] runtime/appcds/GraalWithLimitedMetaspace.java crashes in visit_all_interfaces
ioi.lam at oracle.com
Thu Mar 29 21:26:19 UTC 2018
> On Mar 29, 2018, at 2:19 PM, mikhailo <mikhailo.seledtsov at oracle.com> 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.
The bugs is also sensitive to the initialization sequence of the Graal code. At one point I could reproduce 100% on Linux-x64, but after a recent repo update I could no longer reproduce
> Thank you,
>>> 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