[CP][BUGFIX] fix table scan lob memory leak
This commit is contained in:
@ -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_,
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user