[CP] fix memleak of ObBackupJobMgr ptr
This commit is contained in:
@ -970,7 +970,7 @@ int ObBackupDataScheduler::process()
|
|||||||
}
|
}
|
||||||
if (OB_NOT_NULL(job_mgr)) {
|
if (OB_NOT_NULL(job_mgr)) {
|
||||||
job_mgr->~ObIBackupJobMgr();
|
job_mgr->~ObIBackupJobMgr();
|
||||||
ObBackupJobMgrAlloctor::free(job_mgr);
|
ObBackupJobMgrAlloctor::free(tenant_id_, job_mgr);
|
||||||
job_mgr = nullptr;
|
job_mgr = nullptr;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -1845,15 +1845,15 @@ int ObBackupJobMgrAlloctor::alloc(const uint64_t tenant_id, ObIBackupJobMgr *&jo
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObBackupJobMgrAlloctor::free(ObIBackupJobMgr *job_mgr)
|
void ObBackupJobMgrAlloctor::free(const uint64_t tenant_id, ObIBackupJobMgr *job_mgr)
|
||||||
{
|
{
|
||||||
uint64_t tenant_id = OB_INVALID_TENANT_ID;
|
|
||||||
if (OB_ISNULL(job_mgr)) {
|
if (OB_ISNULL(job_mgr)) {
|
||||||
} else if (OB_FALSE_IT(tenant_id = job_mgr->get_tenant_id())) {
|
|
||||||
} else if (is_sys_tenant(tenant_id)) {
|
} else if (is_sys_tenant(tenant_id)) {
|
||||||
OB_DELETE(ObIBackupJobMgr, "SysJobMgr", job_mgr);
|
OB_DELETE(ObIBackupJobMgr, "SysJobMgr", job_mgr);
|
||||||
} else if (is_meta_tenant(tenant_id)) {
|
} else if (is_meta_tenant(tenant_id)) {
|
||||||
OB_DELETE(ObIBackupJobMgr, "UserJobMgr", job_mgr);
|
OB_DELETE(ObIBackupJobMgr, "UserJobMgr", job_mgr);
|
||||||
|
} else {
|
||||||
|
LOG_ERROR_RET(OB_ERR_UNEXPECTED, "not free backup job mgr, mem leak", K(tenant_id));
|
||||||
}
|
}
|
||||||
job_mgr = nullptr;
|
job_mgr = nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -190,7 +190,7 @@ class ObBackupJobMgrAlloctor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int alloc(const uint64_t tenant_id, ObIBackupJobMgr *&job_mgr);
|
static int alloc(const uint64_t tenant_id, ObIBackupJobMgr *&job_mgr);
|
||||||
static void free(ObIBackupJobMgr *job_mgr);
|
static void free(const uint64_t tenant_id, ObIBackupJobMgr *job_mgr);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user