[CP][BUGFIX] fix table scan lob memory leak

This commit is contained in:
skylhd
2023-09-22 09:40:01 +00:00
committed by ob-robot
parent 6ec6205533
commit be7cd4252e
3 changed files with 5 additions and 5 deletions

View File

@ -105,7 +105,7 @@ int ObTableAccessContext::build_lob_locator_helper(ObTableScanParam &scan_param,
} else if (OB_ISNULL(buf = lob_allocator_.alloc(sizeof(ObLobLocatorHelper)))) { } else if (OB_ISNULL(buf = lob_allocator_.alloc(sizeof(ObLobLocatorHelper)))) {
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
STORAGE_LOG(WARN, "Failed to alloc memory for ObLobLocatorHelper", K(ret)); STORAGE_LOG(WARN, "Failed to alloc memory for ObLobLocatorHelper", K(ret));
} else if (FALSE_IT(lob_locator_helper_ = new (buf) ObLobLocatorHelper(lob_allocator_))) { } else if (FALSE_IT(lob_locator_helper_ = new (buf) ObLobLocatorHelper())) {
} else if (OB_FAIL(lob_locator_helper_->init(scan_param, } else if (OB_FAIL(lob_locator_helper_->init(scan_param,
ctx, ctx,
scan_param.ls_id_, scan_param.ls_id_,
@ -134,7 +134,7 @@ int ObTableAccessContext::build_lob_locator_helper(const ObStoreCtx &ctx,
} else if (OB_ISNULL(buf = lob_allocator_.alloc(sizeof(ObLobLocatorHelper)))) { } else if (OB_ISNULL(buf = lob_allocator_.alloc(sizeof(ObLobLocatorHelper)))) {
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
STORAGE_LOG(WARN, "Failed to alloc memory for ObLobLocatorHelper", K(ret)); STORAGE_LOG(WARN, "Failed to alloc memory for ObLobLocatorHelper", K(ret));
} else if (FALSE_IT(lob_locator_helper_ = new (buf) ObLobLocatorHelper(lob_allocator_))) { } else if (FALSE_IT(lob_locator_helper_ = new (buf) ObLobLocatorHelper())) {
} else if (OB_FAIL(lob_locator_helper_->init(table_store_stat_, } else if (OB_FAIL(lob_locator_helper_->init(table_store_stat_,
ctx, ctx,
ls_id_, ls_id_,

View File

@ -27,7 +27,7 @@ using namespace blocksstable;
namespace storage namespace storage
{ {
ObLobLocatorHelper::ObLobLocatorHelper(common::ObIAllocator& allocator) ObLobLocatorHelper::ObLobLocatorHelper()
: table_id_(OB_INVALID_ID), : table_id_(OB_INVALID_ID),
tablet_id_(OB_INVALID_ID), tablet_id_(OB_INVALID_ID),
ls_id_(OB_INVALID_ID), ls_id_(OB_INVALID_ID),
@ -35,7 +35,7 @@ ObLobLocatorHelper::ObLobLocatorHelper(common::ObIAllocator& allocator)
rowid_version_(ObURowIDData::INVALID_ROWID_VERSION), rowid_version_(ObURowIDData::INVALID_ROWID_VERSION),
rowid_project_(nullptr), rowid_project_(nullptr),
rowid_objs_(), rowid_objs_(),
locator_allocator_(allocator), locator_allocator_(ObModIds::OB_LOB_READER, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()),
rowkey_str_(), rowkey_str_(),
enable_locator_v2_(), enable_locator_v2_(),
is_inited_(false) is_inited_(false)

View File

@ -24,7 +24,7 @@ namespace storage
class ObLobLocatorHelper class ObLobLocatorHelper
{ {
public: public:
ObLobLocatorHelper(common::ObIAllocator& allocator); ObLobLocatorHelper();
virtual ~ObLobLocatorHelper(); virtual ~ObLobLocatorHelper();
void reset(); void reset();
void reuse() { void reuse() {