From 241ebadaa1d789e7d7bc9a4ea1e8fddb684365d8 Mon Sep 17 00:00:00 2001 From: godchen0212 Date: Mon, 3 Jul 2023 09:12:21 +0000 Subject: [PATCH] Retry compare_and_swap while disk hung --- src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp | 2 +- src/storage/tablet/ob_tablet.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp b/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp index debee8c00..941368e6e 100755 --- a/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp +++ b/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp @@ -1791,7 +1791,7 @@ int ObTenantMetaMemMgr::compare_and_swap_tablet( if (OB_FAIL(new_handle.get_obj()->check_and_set_initial_state())) { LOG_WARN("failed to check and set initial state", K(ret), K(key)); } - } while (ret == OB_TIMEOUT || ret == OB_ALLOCATE_MEMORY_FAILED); + } while (OB_TIMEOUT == ret || OB_ALLOCATE_MEMORY_FAILED == ret || OB_DISK_HUNG == ret); } LOG_DEBUG("compare and swap object", K(ret), KPC(new_handle.get_obj()), K(lbt())); diff --git a/src/storage/tablet/ob_tablet.cpp b/src/storage/tablet/ob_tablet.cpp index 1d076c88d..8b217e5ad 100755 --- a/src/storage/tablet/ob_tablet.cpp +++ b/src/storage/tablet/ob_tablet.cpp @@ -5403,6 +5403,7 @@ int ObTablet::check_initial_state(bool &initial_state) } // TODO(@bowen.gbw): optimize, check initial state without IO + // TODO(@chenqingxiang.cqx): support using none addr to check initial state. if (OB_FAIL(ret)) { } else if (OB_FAIL(ObTabletMdsData::load_mds_dump_kv(arena_allocator, uncommitted_tablet_status_addr, uncommitted_kv))) { LOG_WARN("failed to load mds dump kv", K(ret), K(uncommitted_tablet_status_addr));