fix coredump in switch_tenant when oom

This commit is contained in:
nroskill
2023-05-05 10:08:18 +00:00
committed by ob-robot
parent 8dc830fb19
commit 7b0bdb407b

View File

@ -81,7 +81,9 @@ public:
if (NULL != buffer_) {
prev_tenant_id_ = buffer_->get_tenant_id();
if (0 < tenant_id) {
buffer_->switch_tenant(tenant_id);
if (OB_UNLIKELY(OB_SUCCESS != buffer_->switch_tenant(tenant_id))) {
buffer_ = nullptr;
}
}
}
} else {
@ -138,7 +140,8 @@ inline int ObSessionDIBuffer::switch_tenant(const uint64_t tenant_id)
if (OB_SYS_TENANT_ID == tenant_id) {
curr_tenant_collect_ = sys_tenant_collect_;
} else {
if (tenant_id == not_sys_tenant_collect_->tenant_id_) {
if (OB_NOT_NULL(not_sys_tenant_collect_)
&& tenant_id == not_sys_tenant_collect_->tenant_id_) {
} else {
ret = tenant_cache_.get_node(tenant_id, not_sys_tenant_collect_);
}