8207765: HeapMonitorTest.java intermittent failure
Summary: Lower the interval rate and check GC objects too
Reviewed-by: dcubed, sspitsyn
Contributed-by: jcbeyler@google.com
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java Wed Jul 25 12:32:59 2018 -0700
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java Wed Jul 25 10:51:16 2018 -0700
@@ -43,16 +43,20 @@
HeapMonitor.setAllocationIterations(Integer.parseInt(args[0]));
}
+ // Put sampling rate to 100k to ensure samples are collected.
+ HeapMonitor.setSamplingInterval(100 * 1024);
+
if (!HeapMonitor.eventStorageIsEmpty()) {
throw new RuntimeException("Storage is not empty at test start...");
}
HeapMonitor.enableSamplingEvents();
List<Frame> frameList = HeapMonitor.allocate();
- frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 51));
+ frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 54));
Frame[] frames = frameList.toArray(new Frame[0]);
- if (!HeapMonitor.obtainedEvents(frames)) {
+ if (!HeapMonitor.obtainedEvents(frames)
+ && !HeapMonitor.garbageContains(frames)) {
throw new RuntimeException("Events not found with the right frames.");
}