diff --git a/be/src/agent/task_worker_pool.cpp b/be/src/agent/task_worker_pool.cpp index ff22f7923c3dd6..4540d5e04014aa 100644 --- a/be/src/agent/task_worker_pool.cpp +++ b/be/src/agent/task_worker_pool.cpp @@ -1911,9 +1911,10 @@ void CloneTaskPool::_clone_worker_thread_callback() { LOG_INFO("successfully clone tablet") .tag("signature", agent_task_req.signature) .tag("tablet_id", clone_req.tablet_id); + ++_s_report_version; finish_task_request.__set_finish_tablet_infos(tablet_infos); } - + finish_task_request.__set_report_version(_s_report_version); _finish_task(finish_task_request); _remove_task_info(agent_task_req.task_type, agent_task_req.signature); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java index 64b771663b2465..34f6292a60c5ad 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java +++ b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java @@ -510,7 +510,11 @@ private void finishClone(AgentTask task, TFinishTaskRequest request) { } else { LOG.warn("invalid clone task, ignore it. {}", task); } - + if (request.isSetReportVersion()) { + long reportVersion = request.getReportVersion(); + Env.getCurrentSystemInfo().updateBackendReportVersion( + task.getBackendId(), reportVersion, task.getDbId(), task.getTableId()); + } AgentTaskQueue.removeTask(task.getBackendId(), TTaskType.CLONE, task.getSignature()); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java index efca6c7f950a01..0a7ae7691a2822 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java @@ -784,6 +784,10 @@ private static void deleteFromMeta(ListMultimap tabletDeleteFromMeta continue; } + BinlogConfig binlogConfig = new BinlogConfig(olapTable.getBinlogConfig()); + + ReplicaState state = replica.getState(); + // check report version again long currentBackendReportVersion = Env.getCurrentSystemInfo() .getBackendReportVersion(backendId); @@ -791,9 +795,6 @@ private static void deleteFromMeta(ListMultimap tabletDeleteFromMeta continue; } - BinlogConfig binlogConfig = new BinlogConfig(olapTable.getBinlogConfig()); - - ReplicaState state = replica.getState(); if (state == ReplicaState.NORMAL || state == ReplicaState.SCHEMA_CHANGE) { // if state is PENDING / ROLLUP / CLONE // it's normal that the replica is not created in BE but exists in meta.