QiuLongMing commented on issue #12749: URL: https://github.com/apache/seatunnel/issues/12749#issuecomment-6141346466
> 日志里的 `restoreMode=SAVEPOINT` 是一个关键线索:这次请求在找 savepoint,不是在找周期 checkpoint。当前 dev 的两条恢复路径会按状态类型分别筛选,没有相互回退: > > * `SAVEPOINT` 只接受 `SAVEPOINT_TYPE`;CLI 的 `-r` / `--restore` 也是这个入口。 > * `CHECKPOINT` 接受已完成的普通 checkpoint 和 completed-point;CLI 对应 `--restore-with-checkpoint <历史 jobId>`,REST 对应 `restoreMode=CHECKPOINT&restoreSourceJobId=<历史 jobId>`。 > > 因此,“正常暂停后能恢复、失败后提示找不到状态”与恢复模式不匹配是相符的;这条错误本身还不能证明所有 checkpoint 文件都丢了。当前 `CheckpointManager.clearCheckpointIfNeed` 的这条删除逻辑针对 FINISHED/CANCELED,不包含 FAILED;`retain-after-job-cancelled` 也不是失败恢复的通用开关。 > > 可以先补充以下信息,以区分入口选错、没有成功完成的 checkpoint,以及存储读取问题: > > 1. 实际部署包对应的 commit/构建版本。描述写的是 3.0.0,但堆栈里的 jar 是 `3.0.1-SNAPSHOT`。 > 2. 实际恢复请求的入口和参数(隐去凭据)。堆栈走的是 `SubmitJobServlet` REST 提交,而 Running Command 写的是 `seatunnel.sh -r`;若是 Web/UI 操作,请提供它发送的 query 参数。 > 3. 失败前是否有 **成功完成** 的周期 checkpoint,以及原 jobId 下保留状态的类型、checkpointId、完成时间和存储配置。只配置 30s 间隔并不保证已产生可恢复状态。 > > 若该构建支持 CHECKPOINT 恢复,且历史作业确有兼容的已完成 checkpoint,再考虑使用对应入口;它会提交新 jobId,也不能保证下游不会重放数据。这份配置的 JDBC sink 设置了 `is_exactly_once=false`,恢复验证时需要一并检查重复写入。 > > 源码依据(核对的是当前 dev `b0f6feddf`,不是对报告环境的运行复现):[状态类型筛选](https://github.com/apache/seatunnel/blob/b0f6feddf9ed0dc1f5d485cfc69d387edfe6ac82/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/utils/CheckpointRestoreUtils.java)、[CLI 参数](https://github.com/apache/seatunnel/blob/b0f6feddf9ed0dc1f5d485cfc69d387edfe6ac82/seatunnel-core/seatunnel-starter/src/main/java/org/apache/seatunnel/core/starter/seatunnel/args/ClientCommandArgs.java)、[REST 恢复说明](https://github.com/apache/seatunnel/blob/b0f6feddf9ed0dc1f5d485cfc69d387edfe6ac82/docs/en/engines/zeta/rest-api-job-lifecycle.md)。 我查看了最新版本的restapi好像加了restoreMode,我还是用以前的api调用最新版本的接口导致的问题,感谢!现在没问题了 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
