[ 
https://issues.apache.org/jira/browse/FLINK-4482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated FLINK-4482:
--------------------------
    Description: 
In CheckpointCoordinator#stopCheckpointScheduler() :
{code}
    synchronized (lock) {
...
      numUnsuccessfulCheckpointsTriggers = 0;
{code}
triggerLock is not held in the above operation.
See comment for triggerLock earlier in triggerCheckpoint():

{code}
    // we lock with a special lock to make sure that trigger requests do not 
overtake each other.
    // this is not done with the coordinator-wide lock, because the 
'checkpointIdCounter'
    // may issue blocking operations. Using a different lock than teh 
coordinator-wide lock,
    // we avoid blocking the processing of 'acknowledge/decline' messages 
during that time.
    synchronized (triggerLock) {
{code}

  was:
In CheckpointCoordinator#stopCheckpointScheduler() :
{code}
    synchronized (lock) {
...
      numUnsuccessfulCheckpointsTriggers = 0;
{code}
triggerLock is not held in the above operation.
See comment for triggerLock earlier in triggerCheckpoint():
{code}
    // we lock with a special lock to make sure that trigger requests do not 
overtake each other.
    // this is not done with the coordinator-wide lock, because the 
'checkpointIdCounter'
    // may issue blocking operations. Using a different lock than teh 
coordinator-wide lock,
    // we avoid blocking the processing of 'acknowledge/decline' messages 
during that time.
    synchronized (triggerLock) {
{code}


> numUnsuccessfulCheckpointsTriggers is accessed without holding triggerLock
> --------------------------------------------------------------------------
>
>                 Key: FLINK-4482
>                 URL: https://issues.apache.org/jira/browse/FLINK-4482
>             Project: Flink
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Priority: Minor
>
> In CheckpointCoordinator#stopCheckpointScheduler() :
> {code}
>     synchronized (lock) {
> ...
>       numUnsuccessfulCheckpointsTriggers = 0;
> {code}
> triggerLock is not held in the above operation.
> See comment for triggerLock earlier in triggerCheckpoint():
> {code}
>     // we lock with a special lock to make sure that trigger requests do not 
> overtake each other.
>     // this is not done with the coordinator-wide lock, because the 
> 'checkpointIdCounter'
>     // may issue blocking operations. Using a different lock than teh 
> coordinator-wide lock,
>     // we avoid blocking the processing of 'acknowledge/decline' messages 
> during that time.
>     synchronized (triggerLock) {
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to