This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 87306858a1f [Fix](JobManager)Release the lock immediately after 
modifying job metadata to avoid holding the lock for an extended period.#38162 
(#38163)
87306858a1f is described below

commit 87306858a1f6fbc00c12e183377a4890e0f7359c
Author: Calvin Kirs <k...@apache.org>
AuthorDate: Sat Jul 20 10:52:21 2024 +0800

    [Fix](JobManager)Release the lock immediately after modifying job metadata 
to avoid holding the lock for an extended period.#38162 (#38163)
    
    ## Proposed changes
    #38162
    
    <!--Describe your changes.-->
---
 .../main/java/org/apache/doris/job/manager/JobManager.java    | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

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 d8a30a968a6..39646bab18f 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<T extends AbstractJob<?, C>, 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 {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to