From 9eb17fa1e9d1955fa9a62bdb53b24edbf39a7703 Mon Sep 17 00:00:00 2001 From: hiddenbomb Date: Tue, 14 Nov 2023 07:14:48 +0000 Subject: [PATCH] fix empty aux tablet info core issue --- src/storage/meta_mem/ob_storage_meta_cache.cpp | 8 +++++++- src/storage/tablet/ob_tablet.h | 16 ---------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/storage/meta_mem/ob_storage_meta_cache.cpp b/src/storage/meta_mem/ob_storage_meta_cache.cpp index 6ee0b63b6..d91a36441 100644 --- a/src/storage/meta_mem/ob_storage_meta_cache.cpp +++ b/src/storage/meta_mem/ob_storage_meta_cache.cpp @@ -441,8 +441,14 @@ int ObStorageMetaValue::process_aux_tablet_info( pos = 0; // reset pos char *tmp_buf = nullptr; const common::ObString &str = dump_kv.v_.user_data_; - if (OB_FAIL(aux_tablet_info.deserialize(str.ptr(), str.length(), pos))) { + if (str.empty()) { + // keep aux tablet info empty + aux_tablet_info.set_default_value(); + } else if (OB_FAIL(aux_tablet_info.deserialize(str.ptr(), str.length(), pos))) { LOG_WARN("fail to deserialize aux tablet info", K(ret), K(str)); + } + + if (OB_FAIL(ret)) { } else if (OB_ISNULL(tmp_buf = static_cast(allocator.alloc(aux_tablet_info.get_deep_copy_size())))) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("fail to allocate buffer", K(ret), "deep_copy_size", aux_tablet_info.get_deep_copy_size()); diff --git a/src/storage/tablet/ob_tablet.h b/src/storage/tablet/ob_tablet.h index 3c9e87cb5..8c7632e79 100644 --- a/src/storage/tablet/ob_tablet.h +++ b/src/storage/tablet/ob_tablet.h @@ -686,22 +686,6 @@ private: mds::MdsTableHandle &mds_table, bool not_exist_create = false) const; - int build_mds_data( - common::ObArenaAllocator &allocator, - const share::ObTabletAutoincSeq &auto_inc_seq, - const ObTabletTxMultiSourceDataUnit &tx_data, - const ObTabletBindingInfo &ddl_data, - const compaction::ObMediumCompactionInfoList &info_list); - int build_tablet_status( - common::ObArenaAllocator &allocator, - const ObTabletTxMultiSourceDataUnit &tx_data); - int build_aux_tablet_info( - common::ObArenaAllocator &allocator, - const ObTabletTxMultiSourceDataUnit &tx_data, - const ObTabletBindingInfo &ddl_data); - int build_auto_inc_seq( - common::ObArenaAllocator &allocator, - const share::ObTabletAutoincSeq &auto_inc_seq); static int load_medium_info_list( common::ObArenaAllocator &allocator, const ObTabletComplexAddr &complex_addr,