[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)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
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,
ctx,
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)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
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_,
ctx,
ls_id_,

View File

@ -27,7 +27,7 @@ using namespace blocksstable;
namespace storage
{
ObLobLocatorHelper::ObLobLocatorHelper(common::ObIAllocator& allocator)
ObLobLocatorHelper::ObLobLocatorHelper()
: table_id_(OB_INVALID_ID),
tablet_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_project_(nullptr),
rowid_objs_(),
locator_allocator_(allocator),
locator_allocator_(ObModIds::OB_LOB_READER, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()),
rowkey_str_(),
enable_locator_v2_(),
is_inited_(false)

View File

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