From 4b81b2d79b5870f3c8c8eec42e9da34440bdfec3 Mon Sep 17 00:00:00 2001 From: obdev Date: Mon, 25 Dec 2023 04:42:53 +0000 Subject: [PATCH] Fix the processing of notifying ObTenantSnapshotService when deleting unit --- src/observer/omt/ob_tenant_node_balancer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/observer/omt/ob_tenant_node_balancer.cpp b/src/observer/omt/ob_tenant_node_balancer.cpp index a7466842ce..4422ab4343 100644 --- a/src/observer/omt/ob_tenant_node_balancer.cpp +++ b/src/observer/omt/ob_tenant_node_balancer.cpp @@ -516,7 +516,11 @@ int ObTenantNodeBalancer::fetch_effective_tenants(const TenantUnits &old_tenants bool is_tenant_snapshot_released = false; if (is_user_tenant(tenant_config.tenant_id_)) { - MTL(ObTenantSnapshotService*)->notify_unit_is_deleting(); + const int64_t now_time = ObTimeUtility::current_time(); + const int64_t life_time = now_time - tenant_config.create_timestamp_; + if (tenant_config.is_removed_ || life_time >= RECYCLE_LATENCY) { + MTL(ObTenantSnapshotService*)->notify_unit_is_deleting(); + } if (OB_FAIL(MTL(ObTenantSnapshotService*)-> check_all_tenant_snapshot_released(is_tenant_snapshot_released))) { LOG_WARN("fail to check_all_tenant_snapshot_released", K(ret), K(tenant_config));