RFR(S): 8223217: [TESTBUG] Create JFR tests with JMX across container boundary

Erik Gahlin erik.gahlin at oracle.com
Tue Dec 3 19:46:54 UTC 2019


Hi Misha,

Looks good overall, but it seems brittle to expect that the test will 
finish within the 10 s the EvenyGenerator runs

Maybe you could make it deterministic by (for example) checking if the 
recording has stopped:

int i = 0;
while (true) {
     SimpleEvent event = new SimpleEvent();
     event.msg = "Hello";
     event.count = i++;
     event.commit();
     Thread.sleep(10);
     if (FlightRecorder.isInitialized()) {
         for (Recording r : 
FlightRecorder.getFlightRecorder().getRecordings()) {
             if (r.getState() == RecordingState.STOPPED) {
                 System.exit(0);
             }
         }
     }
}

and then not close the recording in the test?

The test could also be made a bit more realistic if you run a default 
recording

bean.setPredefinedConfiguration(recordingId, "default");

Thanks
Erik



On 2019-12-03 05:06, mikhailo.seledtsov at oracle.com wrote:
> Please review this change that tests JFR operations across container 
> boundary while using JMX to control JFR.
> The test starts a container running a simple event producer, 
> establishes a JMX connection, uses FlightRecorderMXBean to start the 
> recording, stop and dump the recording, then transfers recording from 
> the container.
> Simple verification is performed on the transferred recording, making 
> sure that the expected test event is present.
>
>     JBS: https://bugs.openjdk.java.net/browse/JDK-8223217
>     Webrev: http://cr.openjdk.java.net/~mseledtsov/8223217.01/
>     Testing:
>         1. Ran the newly created test at least 30 times on a Linux-x64 
> host with docker engine configured - PASSED
>         2. Ran the test at least 20 times on a test cluster: ALL PASS
>         3. Ran all hotspot/containers tests on the test cluster: PASS
>
>
> Thank you,
> Misha
>


More information about the hotspot-jfr-dev mailing list