Hello All, Flink uses a configured savepoint path ...
# troubleshooting
v
Hello All, Flink uses a configured savepoint path before HA. So the operator’s comment assumes HA will be used, but with execution.savepoint.path present, Flink never reaches HA. Code that proves it: • Operator sets the dummy when it thinks HA is available:
Copy code
//ApplicationReconciler.java

} else if (requireHaMetadata && flinkService.atLeastOneCheckpoint(deployConfig)) {
    // Last state deployment, explicitly set a dummy savepoint path to avoid accidental
    // incorrect state restore in case the HA metadata is deleted by the user
    deployConfig.set(SavepointConfigOptions.SAVEPOINT_PATH, LAST_STATE_DUMMY_SP_PATH);
    status.getJobStatus().setUpgradeSavepointPath(LAST_STATE_DUMMY_SP_PATH);
} else {
    deployConfig.removeConfig(SavepointConfigOptions.SAVEPOINT_PATH);
• Flink, given any savepoint/checkpoint pointer, immediately resolves that path and fails fast on the dummy before any HA path is considered:
Copy code
public static FsCompletedCheckpointStorageLocation resolveCheckpointPointer(String checkpointPointer) throws IOException {
    final Path path;
    try { path = new Path(checkpointPointer); } catch (Exception e) { /* invalid URI */ }
    final FileSystem fs = path.getFileSystem();
    final FileStatus status;
    try { status = fs.getFileStatus(path); } catch (FileNotFoundException e) {
        throw new FileNotFoundException("Cannot find checkpoint or savepoint file/directory '"
            + checkpointPointer + "' on file system '" + fs.getUri().getScheme() + "'.");
    }
    // ...
}
Why is this the case ? Does anyone have any context on how to solve this ?