RFR 8203174: [Graal] JDI tests fail with Unexpected exception: com.sun.jdi.ObjectCollectedException

JC Beyler jcbeyler at google.com
Mon Nov 5 02:49:47 UTC 2018


Hi Daniil,

Quick question about looking at the launch options, is there any reason you
do not simply use:
sun.hotspot.code.Compiler.isGraalEnabled();

Is it because you do not want to specifically call out Graal?

Thanks,
Jc

On Sun, Nov 4, 2018 at 12:41 PM Daniil Titov <daniil.x.titov at oracle.com>
wrote:

> Hi Chris,
>
> There were multiple issues here but with JDK-8193126 being fixed I can no
> longer observe metaspace related issues and suspending the target VM seems
> as a sufficient to prevent newly created objects being collected before we
> have a chance to call disableCollection() on them.
>
> I noticed that the check for JFR uses the same approach to detect whether
> the Flight Recorder is on.
>
> public boolean isJFR_active() {
>     String opts = argumentHandler.getLaunchOptions();
>          int jfrPos = opts.indexOf("-XX:+FlightRecorder");
>          if (jfrPos >= 0)
>               return true;
>           else
>               return false;
>       }
>
> The other option I had in mind is to check the presence of "JMCI Compiler"
> threads in the target VM but I less inclined to it since it relies on the
> thread name that might be changed at some point in the future as well. On
> more option could be to completely remove checks with "java.lang.String"
> class regardless JVMCI is on or off but it would reduce the coverage in the
> case when JVMC is off.
>
> Best regards,
> Daniil
>
> On 11/2/18, 8:59 PM, "Chris Plummer" <chris.plummer at oracle.com> wrote:
>
>     Hi Daniil,
>
>     I thought the issue was that C2 was doing metadata allocations, and
> when
>     it ran out of metaspace it did a GC (one that was not triggered by a
>     failed object allocation). As a results we were getting objects GCs
>     before the test ever got the chance to disable collection on them. I
>     thought we also concluded other than this metaspace issue, if the test
>     is properly disabling collection on the objects it cared about, it
>     shouldn't matter if there are GC's triggered by excessive object
>     allocations.
>
>     I don't think the following check will always be valid. It may be on
> by
>     default at some point:
>
>       651     public boolean isJVMCICompilerOn() {
>       652         String opts = argumentHandler.getLaunchOptions();
>       653         return opts.indexOf("-XX:+UseJVMCICompiler") >= 0;
>       654     }
>
>     thanks,
>
>     Chris
>
>     On 11/2/18 4:29 PM, Daniil Titov wrote:
>     > Please review the change that fixes several tests failing with
> com.sun.jdi.ObjectCollectedException when running with Graal.
>     >
>     > There main problem here is that with Graal on JVMCI Compiler threads
> in the target VM create a lot of objects and sporadically trigger GC that
> results in the objects created in the target VM in the tests being GCed
> before the tests complete. The other problem is that for some classes the
> tests use, e.g. "java.lang.String",  there is already a huge number of
> instances created by JVMCI threads.
>     >
>     > The fix suspends target VM to prevent JVMCI compiler threads from
> creating new objects during the tests execution. In cases when IOPipe is
> used for communication between the test and the debuggee the fix suspends
> all threads but the main rather than suspending the VM. The fix also
> filters out the checks for some test classes (e.g. "java.lang.String") in
> cases when the target VM is run with JVMCI compiler options on.
>     >
>     > Webrev: http://cr.openjdk.java.net/~dtitov/8203174/webrev.01/
>     > Bug: https://bugs.openjdk.java.net/browse/JDK-8203174
>     >
>     > Thanks,
>     > Daniil
>     >
>     >
>     >
>
>
>
>
>
>

-- 

Thanks,
Jc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20181104/d457573f/attachment.html>


More information about the serviceability-dev mailing list