8233870: JFR TestSetEndTime.java times out - onClose() is never called
Reviewed-by: mgronlun
This commit is contained in:
parent
71ec3b6947
commit
ddb7954946
@ -292,4 +292,8 @@ public final class ChunkHeader {
|
|||||||
static long headerSize() {
|
static long headerSize() {
|
||||||
return HEADER_SIZE;
|
return HEADER_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getLastNanos() {
|
||||||
|
return getStartNanos() + getDurationNanos();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,7 @@ public final class ChunkParser {
|
|||||||
long lastValid = absoluteChunkEnd;
|
long lastValid = absoluteChunkEnd;
|
||||||
long metadataPoistion = chunkHeader.getMetataPosition();
|
long metadataPoistion = chunkHeader.getMetataPosition();
|
||||||
long contantPosition = chunkHeader.getConstantPoolPosition();
|
long contantPosition = chunkHeader.getConstantPoolPosition();
|
||||||
chunkFinished = awaitUpdatedHeader(absoluteChunkEnd);
|
chunkFinished = awaitUpdatedHeader(absoluteChunkEnd, configuration.filterEnd);
|
||||||
if (chunkFinished) {
|
if (chunkFinished) {
|
||||||
Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "At chunk end");
|
Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "At chunk end");
|
||||||
return null;
|
return null;
|
||||||
@ -279,11 +279,14 @@ public final class ChunkParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean awaitUpdatedHeader(long absoluteChunkEnd) throws IOException {
|
private boolean awaitUpdatedHeader(long absoluteChunkEnd, long filterEnd) throws IOException {
|
||||||
if (Logger.shouldLog(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO)) {
|
if (Logger.shouldLog(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO)) {
|
||||||
Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Waiting for more data (streaming). Read so far: " + chunkHeader.getChunkSize() + " bytes");
|
Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Waiting for more data (streaming). Read so far: " + chunkHeader.getChunkSize() + " bytes");
|
||||||
}
|
}
|
||||||
while (true) {
|
while (true) {
|
||||||
|
if (chunkHeader.getLastNanos() > filterEnd) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
chunkHeader.refresh();
|
chunkHeader.refresh();
|
||||||
if (absoluteChunkEnd != chunkHeader.getEnd()) {
|
if (absoluteChunkEnd != chunkHeader.getEnd()) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -63,6 +63,14 @@ public final class TestSetEndTime {
|
|||||||
public static void main(String... args) throws Exception {
|
public static void main(String... args) throws Exception {
|
||||||
testEventStream();
|
testEventStream();
|
||||||
testRecordingStream();
|
testRecordingStream();
|
||||||
|
testEmptyStream();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void testEmptyStream() {
|
||||||
|
try (RecordingStream rs = new RecordingStream()) {
|
||||||
|
rs.setEndTime(Instant.now().plusMillis(1100));
|
||||||
|
rs.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void testRecordingStream() throws Exception {
|
private static void testRecordingStream() throws Exception {
|
||||||
@ -89,10 +97,10 @@ public final class TestSetEndTime {
|
|||||||
}
|
}
|
||||||
closed.await();
|
closed.await();
|
||||||
System.out.println("Found events: " + count.get());
|
System.out.println("Found events: " + count.get());
|
||||||
if (count.get() < 50) {
|
if (count.get() > 0 && count.get() < 50) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
System.out.println("Found 50 events. Retrying");
|
System.out.println("Retrying");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user