Fix: core at oceanbase::sql::ObBasicSessionInfo::get_sync_sys_vars at ./src/sql/session/ob_basic_session_info.cpp
This commit is contained in:
@ -72,8 +72,14 @@ int ObMPUtils::add_changed_session_info(OMPKOK &ok_pkt, sql::ObSQLSessionInfo &s
|
|||||||
} else if (OB_FAIL(ok_pkt.add_system_var(str_kv))) {
|
} else if (OB_FAIL(ok_pkt.add_system_var(str_kv))) {
|
||||||
LOG_WARN("failed to add system variable", K(str_kv), K(ret));
|
LOG_WARN("failed to add system variable", K(str_kv), K(ret));
|
||||||
} else {
|
} else {
|
||||||
|
#ifndef NDEBUG
|
||||||
LOG_TRACE("success add system var to ok pack", K(str_kv), K(change_var), K(new_val),
|
LOG_TRACE("success add system var to ok pack", K(str_kv), K(change_var), K(new_val),
|
||||||
K(session.get_sessid()), K(session.get_proxy_sessid()));
|
K(session.get_sessid()), K(session.get_proxy_sessid()));
|
||||||
|
#else
|
||||||
|
// for autocommit change record.
|
||||||
|
LOG_INFO("success add system var to ok pack", K(str_kv), K(change_var), K(new_val),
|
||||||
|
K(session.get_sessid()), K(session.get_proxy_sessid()), K(change_var.id_));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LOG_TRACE("sys var not actully changed", K(changed), K(change_var), K(new_val),
|
LOG_TRACE("sys var not actully changed", K(changed), K(change_var), K(new_val),
|
||||||
|
|||||||
@ -1779,7 +1779,9 @@ int ObBasicSessionInfo::deep_copy_sys_variable(ObBasicSysVar &sys_var,
|
|||||||
int32_t next_index = (current_buf_index_ == 0 ? 1 : 0);
|
int32_t next_index = (current_buf_index_ == 0 ? 1 : 0);
|
||||||
LOG_INFO("Too much memory used for system variable values. do defragment",
|
LOG_INFO("Too much memory used for system variable values. do defragment",
|
||||||
"before", inc_sys_var_alloc_[current_buf_index_]->used(),
|
"before", inc_sys_var_alloc_[current_buf_index_]->used(),
|
||||||
"after", inc_sys_var_alloc_[next_index]->used());
|
"after", inc_sys_var_alloc_[next_index]->used(),
|
||||||
|
"ids", sys_var_inc_info_.get_all_sys_var_ids(),
|
||||||
|
K(sessid_), K(proxy_sessid_));
|
||||||
defragment_sys_variable_to(tmp_value);
|
defragment_sys_variable_to(tmp_value);
|
||||||
inc_sys_var_alloc_[current_buf_index_]->reset();
|
inc_sys_var_alloc_[current_buf_index_]->reset();
|
||||||
current_buf_index_ = next_index;
|
current_buf_index_ = next_index;
|
||||||
@ -3743,6 +3745,9 @@ int ObBasicSessionInfo::deserialize_sync_sys_vars(int64_t &deserialize_sys_var_c
|
|||||||
}
|
}
|
||||||
} else if (OB_FAIL(create_sys_var(sys_var_id, store_idx, sys_var))) {
|
} else if (OB_FAIL(create_sys_var(sys_var_id, store_idx, sys_var))) {
|
||||||
LOG_WARN("fail to create sys var", K(sys_var_id), K(ret));
|
LOG_WARN("fail to create sys var", K(sys_var_id), K(ret));
|
||||||
|
} else if (!sys_var_inc_info_.all_has_sys_var_id(sys_var_id) &&
|
||||||
|
OB_FAIL(sys_var_inc_info_.add_sys_var_id(sys_var_id))) {
|
||||||
|
LOG_WARN("fail to add sys var id", K(sys_var_id), K(ret));
|
||||||
} else if (OB_ISNULL(sys_var)) {
|
} else if (OB_ISNULL(sys_var)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("create sys var is NULL", K(ret));
|
LOG_WARN("create sys var is NULL", K(ret));
|
||||||
@ -3757,13 +3762,6 @@ int ObBasicSessionInfo::deserialize_sync_sys_vars(int64_t &deserialize_sys_var_c
|
|||||||
LOG_TRACE("deserialize sync sys var", K(sys_var_id), K(*sys_var),
|
LOG_TRACE("deserialize sync sys var", K(sys_var_id), K(*sys_var),
|
||||||
K(sessid_), K(proxy_sessid_));
|
K(sessid_), K(proxy_sessid_));
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the current session's array if there is no updated deserialization sys_var.
|
|
||||||
if (!sys_var_inc_info_.all_has_sys_var_id(sys_var_id)) {
|
|
||||||
if (OB_SUCC(ret) && OB_FAIL(sys_var_inc_info_.add_sys_var_id(sys_var_id))) {
|
|
||||||
LOG_WARN("fail to add sys var id", K(sys_var_id), K(ret));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// add all deserialize sys_var id.
|
// add all deserialize sys_var id.
|
||||||
if (OB_SUCC(ret) && OB_FAIL(tmp_sys_var_inc_info.add_sys_var_id(sys_var_id))) {
|
if (OB_SUCC(ret) && OB_FAIL(tmp_sys_var_inc_info.add_sys_var_id(sys_var_id))) {
|
||||||
LOG_WARN("fail to add sys var id", K(sys_var_id), K(ret));
|
LOG_WARN("fail to add sys var id", K(sys_var_id), K(ret));
|
||||||
|
|||||||
Reference in New Issue
Block a user