diff --git a/be/src/agent/task_worker_pool.cpp b/be/src/agent/task_worker_pool.cpp index 24c51ad69e7d9d..d8c4eb351cff73 100644 --- a/be/src/agent/task_worker_pool.cpp +++ b/be/src/agent/task_worker_pool.cpp @@ -1883,9 +1883,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 2833eff5f3d0e8..8efbf46b13e153 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 30c3bba3de026d..7727bad0293aec 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 @@ -770,6 +770,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); @@ -777,9 +781,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.