[ 
https://issues.apache.org/jira/browse/FLINK-25695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17497238#comment-17497238
 ] 

Lyn Zhang commented on FLINK-25695:
-----------------------------------

If we create a KeyedMapState and add some elements in it, then foreach those 
elements and remove all elements from  KeyedMapState, 

The KeyedMapState is empty but the key is still exists unless invoked clear() 
to remove it.



This bug is caused by leftState and rightState join success and all elements in 
those state removed, but the key is still exists in  leftState and rightState 
causing state leak[~wenlong.lwl] 

> TemporalJoin cause state leak in some cases
> -------------------------------------------
>
>                 Key: FLINK-25695
>                 URL: https://issues.apache.org/jira/browse/FLINK-25695
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Runtime
>    Affects Versions: 1.14.3
>            Reporter: Lyn Zhang
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: image-2022-01-29-11-11-11-705.png, 
> image-2022-01-29-11-11-27-550.png, image-2022-01-29-11-11-31-967.png, 
> image-2022-01-29-11-12-43-016.png, test.sql
>
>
> Last year, I reported the similar bug of TemporalJoin cause state leak. 
> Detail: FLINK-21833
> Recently, I found the fix code can reduce the the leak size but can not 
> resolve it completely.
> The code of line 213 cause it and the right fix is to invoke cleanUp() method.
> In FLINK-21833, we discussed when the code is running on line 213, that means 
> Left State, Right State, registeredTimerState is empty, actually the Left 
> State and Right State value(MapState) is empty but the key is still be in 
> state, So invoke state.clear() is necessary. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to