[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR 8203174: [Graal] JDI tests fail with Unexpected exception: com.sun.jdi.ObjectCollectedExcept
From:       Alex Menkov <alexey.menkov () oracle ! com>
Date:       2018-06-25 18:15:41
Message-ID: 211a436c-c1af-2dca-11e2-f75185888b57 () oracle ! com
[Download RAW message or body]

Hi Daniil,

Couple minor notes:
- Debugee.DEFAULT_MAIN_THREAD_NAME makes sense only for 
HeapwalkingDebuggee-inherited tests, so it would be better to move the 
constant to the class (and make it protected);

- HeapwalkingDebuggee.useStrictCheck can be simplified to something like
         switch (className) {
         case "java.lang.String":
         case "char[]":
         case "byte[]":
         case "boolean[]":
         case "float[]":
         case "long[]":
         case "int[]":
         case "double[]":
             return false;

         case "java.lang.Thread":
             if (otherThreadPresent) {
                 return false;
             }
             break;
         }

         return true;

--alex


On 06/22/2018 19:13, Daniil Titov wrote:
> Please review the changes that fix 15 tests failures when running with Graal.
> 
> The main problem here is that the tests assume that no garbage collection happens \
> before the tests complete their checks. The other problem is that the tests could \
> not strictly distinguish the objects created by the debuggee on the request from \
> the test from the objects of the same class created by the debuggee VM on its own.  \
> In case when java.lang.String or arrays of primitives are used in the tests the \
> number of objects the test operates could significantly exceeds the number of the \
> objects the test actually created and iterating over all of them results in the \
> timeout. 
> The fix ensures that the object references created in the tests are protected from \
> garbage collection or modifies the test to expect an ObjectCollectedException where \
> necessary. In some cases, the fix ensures that only the main thread of the debuggee \
> is running to prevent the garbage collector thread to create objects of the same \
> class the test is working with and avoid timeouts. 
> Webrev: http://cr.openjdk.java.net/~dtitov/8203174/webrev.01
> Bug: https://bugs.openjdk.java.net/browse/JDK-8203174
> 
> Thanks,
> Daniil
> 
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic