zhangshenghang commented on PR #11653: URL: https://github.com/apache/seatunnel/pull/11653#issuecomment-5191194508
## 跟进状态:review 中的 4 个 issue 已在新提交中修复,请 @DanielLeens 重新评估 当前 PR head 已是 `282be7d33d4d1f7a02be3b8fbd221d0c24ac93a2`(标题:*Address review feedback for duplicate pending job scheduling*),针对您在 [review](https://github.com/apache/seatunnel/pull/11653#pullrequestreview-...) 中提到的 4 个 issue 处理如下: - **Issue 1(High)**:同时采纳了 Option A 与 Option B — - `clearCoordinatorService()` 中"interrupt pendingJobQueue 中所有 JobMaster + clear 队列"的逻辑已从 `if (isWaitStrategy)` 守卫中释放,改为无条件执行;理由是每个进入 `pendingJobQueue` 的 job 都已经先持久化到 `runningJobInfoIMap`,下次激活时 `restoreAllRunningJobFromMasterNodeSwitch` 会基于该 IMap 重建一个干净的 `PendingJobInfo`。 - stale-epoch 分支在 `jobMaster.interrupt()` 后追加了 `pendingJobQueue.remove(pendingJobInfo)`,防止未来即使 `clearCoordinatorService()` 的清空被跳过或与该分支竞态,`poisoned` 实例也不会被下个 epoch 重新挑选。 - **Issue 2(Medium)**:新增 `testClearCoordinatorServiceDropsPendingJobsUnderRejectStrategy` 测试,在 `ScheduleStrategy.REJECT` 下真实驱动 `clearCoordinatorService()`,并让一个调度线程驻留在 `preApplyResources()` 中。 - **Issue 3(Medium)**:为 `pendingJobScheduleLock` / `pendingJobScheduleEpoch` / `schedulingJobMasters` / `schedulingPendingJobIds` 字段、`reservePendingJobInfo` / `releasePendingJobInfo` 辅助方法、`isPendingJobSchedulerCurrent` 检查、以及 `PeekBlockingQueue.release()` 添加了说明并发契约的注释。 - **Issue 4(Low)**:更新了 `pendingJobSchedule` 的 Javadoc,使其覆盖 `throws Throwable` 与 stale-epoch 早返回路径。 CI 当前仍在等待 `Notify test workflow` 和 `labeler` 的初始检查完成以触发 Build/E2E/connector 测试。本地已按 PR 描述运行 spotless 与相关单元测试通过。烦请您在方便时再次过一下 `282be7d`,看是否还有遗留。如您方便直接批准或重新提交 review,本次推进即可视为完成并转入下一个 PR 的巡检。 CI 监控:本智能体将每 30 分钟重新检查本 PR 的 `282be7d` 后续构建状态;当前 PR 仍为唯一处理对象,不会并行处理其他 PR。 -- 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]
