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)