From e0edd798fcd7fe631657e7c90e60ecf51afa6c2b Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 9 Oct 2024 15:16:17 +0000 Subject: [PATCH] fix data split without data complete check. --- src/storage/ddl/ob_tablet_lob_split_task.cpp | 2 +- src/storage/ddl/ob_tablet_split_task.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/storage/ddl/ob_tablet_lob_split_task.cpp b/src/storage/ddl/ob_tablet_lob_split_task.cpp index 23e784f91..a0a150666 100644 --- a/src/storage/ddl/ob_tablet_lob_split_task.cpp +++ b/src/storage/ddl/ob_tablet_lob_split_task.cpp @@ -461,7 +461,7 @@ int ObTabletLobSplitDag::fill_info_param(compaction::ObIBasicInfoParam *&out_par ret = OB_NOT_INIT; LOG_WARN("ObTabletLobSplitDag has not been initialized", K(ret)); } else if (OB_FAIL(ADD_DAG_WARN_INFO_PARAM(out_param, allocator, get_type(), - static_cast(param_.ori_lob_meta_tablet_id_.id()), param_.parallelism_))) { + static_cast(param_.ls_id_.id()), static_cast(param_.ori_lob_meta_tablet_id_.id())))) { LOG_WARN("failed to fill info param", K(ret)); } return ret; diff --git a/src/storage/ddl/ob_tablet_split_task.cpp b/src/storage/ddl/ob_tablet_split_task.cpp index ebaef8e00..217fd99ab 100644 --- a/src/storage/ddl/ob_tablet_split_task.cpp +++ b/src/storage/ddl/ob_tablet_split_task.cpp @@ -502,7 +502,7 @@ int ObTabletSplitDag::fill_info_param(compaction::ObIBasicInfoParam *&out_param, ret = OB_NOT_INIT; LOG_WARN("ObComplementDataDag has not been initialized", K(ret)); } else if (OB_FAIL(ADD_DAG_WARN_INFO_PARAM(out_param, allocator, get_type(), - static_cast(param_.source_tablet_id_.id()), param_.user_parallelism_))) { + static_cast(param_.ls_id_.id()), static_cast(param_.source_tablet_id_.id())))) { LOG_WARN("failed to fill info param", K(ret)); } return ret; @@ -2328,6 +2328,12 @@ int ObTabletSplitUtil::check_satisfy_split_condition( if (REACH_COUNT_INTERVAL(1000L)) { LOG_INFO("should wait memtable dump", K(ret), "tablet_id", tablet->get_tablet_meta().tablet_id_, K(memtable_handles)); } + } else if (!source_tablet_handle.get_obj()->get_tablet_meta().ha_status_.check_allow_read()) { + ret = OB_NEED_RETRY; + if (REACH_COUNT_INTERVAL(1000L)) { + LOG_INFO("should wait data complete", K(ret), "tablet_id", tablet->get_tablet_meta().tablet_id_, + "tablet_meta", source_tablet_handle.get_obj()->get_tablet_meta()); + } } else if (MTL_TENANT_ROLE_CACHE_IS_RESTORE()) { LOG_INFO("dont check compaction in restore progress", K(ret), "tablet_id", tablet->get_tablet_meta().tablet_id_); } else {