From 87a4fa69d5abc30d9abdf3f5c6215df6e7a3ae89 Mon Sep 17 00:00:00 2001 From: ic4y <83933160+ic4y@users.noreply.github.com> Date: Wed, 9 Aug 2023 20:20:10 +0800 Subject: [PATCH] [Hotfix][Zeta] Avoid Redundant Job Submissions by Checking Job Status (#5229) --- .../seatunnel/engine/server/CoordinatorService.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java b/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java index ced00d9e660..fde8b3744c4 100644 --- a/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java +++ b/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/CoordinatorService.java @@ -425,6 +425,18 @@ public ResourceManager getResourceManager() { /** call by client to submit job */ public PassiveCompletableFuture submitJob(long jobId, Data jobImmutableInformation) { CompletableFuture jobSubmitFuture = new CompletableFuture<>(); + + // Check if the current jobID is already running. If so, complete the submission + // successfully. + // This avoids potential issues like redundant job restores or other anomalies. + if (getJobMaster(jobId) != null) { + logger.warning( + String.format( + "The job %s is currently running; no need to submit again.", jobId)); + jobSubmitFuture.complete(null); + return new PassiveCompletableFuture<>(jobSubmitFuture); + } + JobMaster jobMaster = new JobMaster( jobImmutableInformation,