RFR 8030628: MemoryMXBean/CollectionUsageThreshold.java is not applicable for VM SQE testing
Leonid Mesnik
leonid.mesnik at oracle.com
Tue Mar 11 20:16:06 UTC 2014
Mandy, Mattias
See my comments inline. Please note that I am not Reviewer and not SVC
team member.
On 03/11/2014 11:49 PM, Mandy Chung wrote:
> Hi Mattias,
>
> Have you discussed with Jon Gibbons about the jtreg @requires
> support? I thought it was partly motivated by the requirement to
> specify a test to run in different collector.
I proposed such approach. The @requires tag is good when we have test
which require some specific functionality. For example if we have G1
specific test then @require G1GC should work well.
However I suppose that if we want to have more advanced logic we need to
use @driver and execute new VMs in driver code. This fix could be later
easily adopted to such approach.
>
> The reason why these regression tests explicitly specifies different
> GC flags was to increase the coverage and ensure to catch regression
> early during development cycle. At that time, the VM nightly testing
> rotates the test execution with different GC configuration that
> delayed to catch a regression that occurs in one collector while the
> nightly testing is testing another collector. For integration, I
> don't recall if different collectors are tested rather than default.
> It may be time to revisit the test execution with different
> collectors. If the verification of different collectors is well
> covered in nightly, perhaps these tests no longer need one @run per
> each collector.
>
If JMX team is ok with using only flags given externall by jtreg then I
think it would be better just to remove all GCs from @run's. All
supported GC combinations are covered in VM SQE Nightly/PIT/Promotion
testing.
Mattias
What do you think about removal all @run tags with specific GC's?
> There are other regression tests that specifies the -XX:+UseXXGC flag
> in the @run tag. It makes sense to modify them in the same patch
> (perhaps at least tests under test/java/lang/management).
I don't know when @require/@driver tags are doing to be implemented.
Probably we might want to wait them in jtreg. After this we should fix
all HS/JDK regression tests to get rid of "incompatible flags" issue.
Leonid
>
> Mandy
>
> On 3/11/14 6:15 AM, Mattias Tobiasson wrote:
>> Hi,
>> Could you please review this test fix.
>>
>> The test fails because it specifies its own GC command line options,
>> for example:
>> @run main/othervm/timeout=300 -XX:+PrintGCDetails -XX:+UseSerialGC
>> CollectionUsageThreshold
>>
>> When the framework also specifies GC version, then the test will fail
>> with this log:
>> "Conflicting collector combinations in option list; Error: Could not
>> create the Java Virtual Machine."
>>
>> The solution is to run the test in a separate JVM with controlled GC
>> options.
>> The test will be run multiple times.
>> First with the command line specified from the framework, without
>> test specific GC options.
>> Then once for each GC version specified in the test. When the test
>> specifies the GC, any GC options from the framework are removed.
>>
>> webrev: http://cr.openjdk.java.net/~ykantser/8030628/webrev.01
>> bug: https://bugs.openjdk.java.net/browse/JDK-8030628
>>
>> Mattias
>>
>
--
Leonid Mesnik
JVM SQE
More information about the serviceability-dev
mailing list