Jinzhong Li created FLINK-25094:
-----------------------------------
Summary: The verify code in
LatencyTrackingMapStateTest#verifyIterator is not actually executed
Key: FLINK-25094
URL: https://issues.apache.org/jira/browse/FLINK-25094
Project: Flink
Issue Type: Bug
Components: Runtime / State Backends, Tests
Reporter: Jinzhong Li
In LatencyTrackingMapStateTest,
iterator()/entries().iterator()/keys().iterator()/values().iterator() will be
invoke before verifyIterator method is invoked, this is,
iterator()/... will be invode before putting the test data into
latencyTrackingMapState. So the verify code is not actually executed becase
"iterator.hasNext()" is always false.
{code:java}
private <E> void verifyIterator(
LatencyTrackingMapState<Integer, VoidNamespace, Long, Double>
latencyTrackingState,
LatencyTrackingMapState.MapStateLatencyMetrics
latencyTrackingStateMetric,
Iterator<E> iterator,
boolean removeIterator)
throws Exception {
ThreadLocalRandom random = ThreadLocalRandom.current();
for (int index = 1; index <= SAMPLE_INTERVAL; index++) {
latencyTrackingState.put((long) index, random.nextDouble());
}
int count = 1;
while (iterator.hasNext()) {
int expectedResult = count == SAMPLE_INTERVAL ? 0 : count;
assertEquals(expectedResult,
latencyTrackingStateMetric.getIteratorHasNextCount());
iterator.next();
assertEquals(expectedResult,
latencyTrackingStateMetric.getIteratorNextCount());
if (removeIterator) {
iterator.remove();
assertEquals(expectedResult,
latencyTrackingStateMetric.getIteratorRemoveCount());
}
count += 1;
}
// as we call #hasNext on more time than #next, to avoid complex check,
just reset hasNext
// counter in the end.
latencyTrackingStateMetric.resetIteratorHasNextCount();
latencyTrackingState.clear();
} {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)