提交 09028517 编写于 作者: O obdev 提交者: ob-robot

[CP] Fix: Deserialized session lifecycle issues

上级 3f7aeb99
......@@ -3848,6 +3848,8 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo)
user_var_val.reset();
if (OB_FAIL(serialization::decode(buf, data_len, pos, user_var_name))) {
LOG_WARN("fail to deserialize user var name", K(i), K(data_len), K(pos), K(ret));
} else if (OB_FAIL(name_pool_.write_string(user_var_name, &user_var_name))) {
LOG_WARN("fail to write user_var_name to string_buf_", K(user_var_name), K(ret));
} else if (OB_FAIL(serialization::decode(buf, data_len, pos, user_var_val.meta_))) {
LOG_WARN("fail to deserialize user var val meta", K(i), K(data_len), K(pos), K(ret));
} else if (OB_FAIL(serialization::decode(buf, data_len, pos, user_var_val.value_))) {
......@@ -3985,6 +3987,27 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo)
thread_data_.client_addr_,
thread_data_.user_client_addr_,
process_query_time_);
// deep copy string.
if (OB_SUCC(ret)) {
if (OB_FAIL(name_pool_.write_string(app_trace_id_, &app_trace_id_))) {
LOG_WARN("fail to write app_trace_id to string_buf_", K(app_trace_id_), K(ret));
} else if (OB_FAIL(name_pool_.write_string(thread_data_.user_name_,
&thread_data_.user_name_))) {
LOG_WARN("fail to write username to string_buf_", K(thread_data_.user_name_), K(ret));
} else if (OB_FAIL(name_pool_.write_string(thread_data_.user_at_host_name_,
&thread_data_.user_at_host_name_))) {
LOG_WARN("fail to write user_at_host_name to string_buf_",
K(thread_data_.user_at_host_name_), K(ret));
} else if (OB_FAIL(name_pool_.write_string(thread_data_.user_at_client_ip_,
&thread_data_.user_at_client_ip_))) {
LOG_WARN("fail to write user_at_client_ip to string_buf_",
K(thread_data_.user_at_client_ip_), K(ret));
} else if (OB_FAIL(name_pool_.write_string(sys_var_in_pc_str_, &sys_var_in_pc_str_))) {
LOG_WARN("fail to write sys_var_in_pc_str to string_buf_", K(sys_var_in_pc_str_), K(ret));
} else if (OB_FAIL(name_pool_.write_string(config_in_pc_str_, &config_in_pc_str_))) {
LOG_WARN("fail to write config_in_pc_str_ to string_buf_", K(config_in_pc_str_), K(ret));
}
}
trans_flags_.set_need_serial_exec(need_serial_exec);
sql_scope_flags_.set_flags(sql_scope_flags);
is_deserialized_ = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册