[ https://issues.apache.org/jira/browse/FLINK-13004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16873994#comment-16873994 ]
Jark Wu commented on FLINK-13004: --------------------------------- [~yunta] (y) > Correct the logic of needToCleanupState in > KeyedProcessFunctionWithCleanupState > ------------------------------------------------------------------------------- > > Key: FLINK-13004 > URL: https://issues.apache.org/jira/browse/FLINK-13004 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Reporter: Yun Tang > Assignee: Yun Tang > Priority: Major > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > Current implementation of needToCleanupState in > KeyedProcessFunctionWithCleanupState actually has potention bug: > {code:java} > protected Boolean needToCleanupState(Long timestamp) throws IOException { > if (stateCleaningEnabled) { > Long cleanupTime = cleanupTimeState.value(); > // check that the triggered timer is the last registered processing > time timer. > return null != cleanupTime && timestamp == cleanupTime; > } else { > return false; > } > } > {code} > Please note that it directly use "==" to judge whether *Long* type timestamp > and cleanupTime equals. However, if that value is larger than 127L, the > result would actually return false instead of wanted true. -- This message was sent by Atlassian JIRA (v7.6.3#76005)