diff --git a/fe/fe-core/src/main/java/org/apache/doris/job/manager/JobManager.java b/fe/fe-core/src/main/java/org/apache/doris/job/manager/JobManager.java index d8a30a968a..39646bab18 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/job/manager/JobManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/job/manager/JobManager.java @@ -111,12 +111,19 @@ public class JobManager, C> implements Writable { throw new JobException("job id exist, jobId:" + job.getJobId()); } jobMap.put(job.getJobId(), job); - //check its need to scheduler - jobScheduler.scheduleOneJob(job); job.logCreateOperation(); } finally { writeUnlock(); } + try { + //check its need to scheduler + jobScheduler.scheduleOneJob(job); + } catch (Exception e) { + // if scheduler job error, we need to unregister job + log.warn(("first schedule job error,unregister job, jobName:" + job.getJobName()), e); + unregisterJob(job.getJobId()); + throw new JobException("register job error, jobName:" + job.getJobName()); + } } private void checkJobNameExist(String jobName) throws JobException {