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

Yue Ma updated FLINK-34210:
---------------------------
    Description: 
The *DefaultExecutionGraphBuilder* will call 
_{*}isCheckpointingEnabled{*}(JobGraph jobGraph)_
to determine whether the job has enabled Checkpoint and whether to initialize 
CheckpointCoordinator related components such as CheckpointCoordinator, 
CheckpointIDCounter , etc.

 
{code:java}
// DefaultExecutionGraphBuilder#isCheckpointingEnabled

public static boolean isCheckpointingEnabled(JobGraph jobGraph) {
    return jobGraph.isCheckpointingEnabled();
}{code}
 

The problem is that the logic for determining isCheckpointingEnable here is 
inaccurate, as *jobGraph. getCheckpointingSettings()* will not be NULL when 
checkpoint is not enabled, but with 
CheckpointCoordinatorConfiguration.DISABLED_CHECKPOINT_INTERVAL Interval

 
{code:java}
// JobGraph#isCheckpointingEnabled

public boolean isCheckpointingEnabled() {

    if (snapshotSettings == null) {
        return false;
    }

    return 
snapshotSettings.getCheckpointCoordinatorConfiguration().isCheckpointingEnabled();
} {code}
 

 

The method to fix this problem is also quite clear. We need to directly reuse 
the result of jobGraph.isCheckpointingEnable() here

 

  was:
The *DefaultExecutionGraphBuilder* will call 
_isCheckpointingEnabled(JobGraph jobGraph)_
to determine whether the job has enabled Checkpoint and whether to initialize 
CheckpointCoordinator related components such as CheckpointCoordinator, 
CheckpointIDCounter , etc.

The problem is that the logic for determining isCheckpointingEnable here is 
inaccurate, as *jobGraph. getCheckpointingSettings()* will not be NULL when 
checkpoint is not enabled, but with 
CheckpointCoordinatorConfiguration.DISABLED_CHECKPOINT_INTERVAL Interval

The method to fix this problem is also quite clear. We need to directly reuse 
the result of jobGraph.isCheckpointingEnable() here

 


> DefaultExecutionGraphBuilder#isCheckpointingEnabled may return Wrong Value 
> when checkpoint disabled
> ---------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-34210
>                 URL: https://issues.apache.org/jira/browse/FLINK-34210
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Checkpointing
>    Affects Versions: 1.19.0, 1.18.1
>            Reporter: Yue Ma
>            Priority: Major
>              Labels: pull-request-available
>
> The *DefaultExecutionGraphBuilder* will call 
> _{*}isCheckpointingEnabled{*}(JobGraph jobGraph)_
> to determine whether the job has enabled Checkpoint and whether to initialize 
> CheckpointCoordinator related components such as CheckpointCoordinator, 
> CheckpointIDCounter , etc.
>  
> {code:java}
> // DefaultExecutionGraphBuilder#isCheckpointingEnabled
> public static boolean isCheckpointingEnabled(JobGraph jobGraph) {
>     return jobGraph.isCheckpointingEnabled();
> }{code}
>  
> The problem is that the logic for determining isCheckpointingEnable here is 
> inaccurate, as *jobGraph. getCheckpointingSettings()* will not be NULL when 
> checkpoint is not enabled, but with 
> CheckpointCoordinatorConfiguration.DISABLED_CHECKPOINT_INTERVAL Interval
>  
> {code:java}
> // JobGraph#isCheckpointingEnabled
> public boolean isCheckpointingEnabled() {
>     if (snapshotSettings == null) {
>         return false;
>     }
>     return 
> snapshotSettings.getCheckpointCoordinatorConfiguration().isCheckpointingEnabled();
> } {code}
>  
>  
> The method to fix this problem is also quite clear. We need to directly reuse 
> the result of jobGraph.isCheckpointingEnable() here
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to