diff --git a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java index 67a5bbe4db5294..971bbfa3501653 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java @@ -143,8 +143,18 @@ public void dropJob(MTMV mtmv, boolean isReplay) { } public void alterJob(MTMV mtmv, boolean isReplay) { - dropJob(mtmv, isReplay); - createJob(mtmv, isReplay); + MTMVJob oldJob = getJobByMTMV(mtmv); + if (!isReplay && oldJob != null) { + oldJob.writeLock(); + } + try { + dropJob(mtmv, isReplay); + createJob(mtmv, isReplay); + } finally { + if (!isReplay && oldJob != null) { + oldJob.writeUnlock(); + } + } } /**