RFR: 8026047: [TESTBUG] add regression test for DisableExplicitGC flag
Bengt Rutisson
bengt.rutisson at oracle.com
Tue Mar 3 08:02:30 UTC 2015
Hi Michail,
I like the idea of using the GarbageCollectionMXBean!
However, I am not too happy about the test waiting for 20 seconds.
Especially since you have the failing test which will actually wait for
20 seconds.
Instead I would suggest to just use the collection count. Attaching a
version of the test that use that instead. What do you think about this
approach?
Thanks,
Bengt
On 2015-02-25 13:42, Michail Chernov wrote:
> Hi Bengt,
>
> I've rewritten test using JMX. I don't see here any reason to use gc
> log for testing this flag.
>
> http://cr.openjdk.java.net/~eistepan/~mchernov/8026047/webrev.02/
>
> It seems better solution because it doesn't depend on used GC or log
> message format.
>
> Tested locally with JDK 9 b51 using several GC. Tested using Aurora on
> all platforms.
>
> Thanks,
> Michail
>
> On 12.02.2015 17:07, Bengt Rutisson wrote:
>>
>> Hi Michail,
>>
>> On 11/02/15 16:33, Michail Chernov wrote:
>>> Hi Bengt,
>>>
>>> Test works with all options passed to jtreg during testing ( see
>>> line 97 vmOpts.addAll(0, Utils.getVmOptions());). Doesn't
>>> need to check all GC's, it will be done during nightly.
>>
>> Ah. I see that now.
>>
>>>
>>> 44 public final static String[] PARALLEL_GC_OPTIONS =
>>> {"UseParallelGC", "UseParallelOldGC"};
>>> Here is defined special options. If define one of these options -
>>> will be used other pattern to match output.
>>
>> Right.
>>
>>>
>>> But it seems to me a little bit wrong. I've checked output of GC log
>>> with different GCs and ExplicitGCInvokesConcurrent. Message "Full GC
>>> (System.gc())" does not appear only in case of using G1 or CMS with
>>> ExplicitGCInvokesConcurrent=true. Will fix it.
>>
>> OK.
>>
>> My main point was that I think the whole structure of the test is
>> different than how we usually write tests that verify the log output.
>> I would prefer if the tests look similar. Would you mind re-writing
>> the test to look like the other tests.
>>
>> I much prefer that you explicitly start with the GCs you want to test
>> than that you use the WhiteBox API to find out which GC you are running.
>>
>> I'm having a similar discussion with Dima who recently invented yet
>> another way to parse the GC log output from tests. I think it gets
>> very hard to read the tests when they do the same thing in different
>> ways.
>>
>> Thanks,
>> Bengt
>>>
>>> Thanks,
>>> Michail
>>> On 11.02.2015 16:15, Bengt Rutisson wrote:
>>>>
>>>> Hi Michail,
>>>>
>>>> On 11/02/15 13:55, Michail Chernov wrote:
>>>>> Hi,
>>>>>
>>>>> Still hoping for review!
>>>>
>>>> Sorry for being so late in looking at this.
>>>>
>>>> A couple of questions:
>>>>
>>>> Why does the test only test the parallel GC? DisableExplicitGC is
>>>> valid for all GCs.
>>>>
>>>> What do you think about writing this test similar to other tests
>>>> that validate the output from the GC logging? Here's an example:
>>>>
>>>> http://hg.openjdk.java.net/jdk9/hs-gc/hotspot/file/566574421b40/test/gc/g1/TestGCLogMessages.java
>>>>
>>>>
>>>> Thanks,
>>>> Bengt
>>>>
>>>>>
>>>>> Thanks,
>>>>> Michail
>>>>>
>>>>> On 05.02.2015 21:05, Michail Chernov wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Still waiting for reviews!
>>>>>>
>>>>>> Thanks,
>>>>>> Michail
>>>>>>
>>>>>> On 03.02.2015 20:12, Michail Chernov wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> Can someone take a look on these changes, please?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Michail
>>>>>>>
>>>>>>> On 30.01.2015 18:33, Michail Chernov wrote:
>>>>>>>> Hi Leonid,
>>>>>>>>
>>>>>>>> Issues were fixed:
>>>>>>>> http://cr.openjdk.java.net/~eistepan/~mchernov/8026047/webrev.01/
>>>>>>>>
>>>>>>>> Now all testcases are executed from the same VM.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Michail
>>>>>>>>
>>>>>>>> On 28.01.2015 18:28, Leonid Mesnik wrote:
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> Why is it needed to start VM twice for each test. It is very
>>>>>>>>> expensive especially for low-end devices.
>>>>>>>>>
>>>>>>>>> Is it possible to have driver which starts VM several times
>>>>>>>>> with different combinations of options and check it
>>>>>>>>> output/exit code etc? Also it would be much easier to read
>>>>>>>>> such test.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Leonid
>>>>>>>>>
>>>>>>>>> On 27.01.2015 18:35, Michail Chernov wrote:
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> Please review the fix with new test for DisableExplicitGC VM
>>>>>>>>>> flag.
>>>>>>>>>>
>>>>>>>>>> Webrev:
>>>>>>>>>> http://cr.openjdk.java.net/~eistepan/~mchernov/8026047/webrev.00/
>>>>>>>>>>
>>>>>>>>>> Enhancement: https://bugs.openjdk.java.net/browse/JDK-8026047
>>>>>>>>>>
>>>>>>>>>> There is one scenario with 6 parameters combinations.
>>>>>>>>>>
>>>>>>>>>> 1,2,3 scenarios test default value for DisableExplicitGC,
>>>>>>>>>> DisableExplicitGC=true and DisableExplicitGC=false
>>>>>>>>>> 4,5,6 scenarios check how VM works when VM changes
>>>>>>>>>> DisableExplicitGC flag using WhiteBox.
>>>>>>>>>>
>>>>>>>>>> Test tries to call System.gc() and check that VM puts message
>>>>>>>>>> to stdout. After (in case of 4,5,6 scenarios) test tries to
>>>>>>>>>> change DisableExplicitGC value and calls System.gc() twice.
>>>>>>>>>>
>>>>>>>>>> Test was executed locally on linux-i586 with all available GC
>>>>>>>>>> and several GC-related flags. Also it was executed using
>>>>>>>>>> Aurora on other platforms.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Michail
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TestDisableExplicitGC.java
Type: text/x-java
Size: 2239 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20150303/6f53fc16/TestDisableExplicitGC.java>
More information about the hotspot-gc-dev
mailing list