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)

Reply via email to