Github user jrthe42 commented on the issue:

    https://github.com/apache/flink/pull/6301
  
    Hi @sihuazhou , I am not familiar with the checkpoint mechanism of Flink, 
and I check the source code again. 
    
    Although the ```RichSinkFunction#invoke()``` and 
```RichSinkFunction#snapshotState()``` are not executed in the same thread, but 
there is already synchronization mechanism in ```StreamTask```. 
```StreamTask``` use a **checkpoint lock object** to make sure they won't be 
called concurrently. Check ```StreamTask#performCheckpoint()``` and 
```StreamInputProcessor#processInput()``` if you want to know more.
    
    Thanks for your comment, I removed synchronization here, and this PR is 
updated. cc @yanghua 
    



---

Reply via email to