[
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)