fix task aborted status is not persisted to the internal table bug

This commit is contained in:
obdev
2023-03-21 17:00:23 +00:00
committed by ob-robot
parent 1ec233bb5d
commit d760428489
14 changed files with 401 additions and 235 deletions

View File

@ -289,7 +289,8 @@ int ObDropIndexTask::cleanup_impl()
}
if (OB_SUCC(ret) && parent_task_id_ > 0) {
root_service_->get_ddl_task_scheduler().on_ddl_task_finish(parent_task_id_, get_task_key(), ret_code_, trace_id_);
const ObDDLTaskID parent_task_id(tenant_id_, parent_task_id_);
root_service_->get_ddl_task_scheduler().on_ddl_task_finish(parent_task_id, get_task_key(), ret_code_, trace_id_);
}
LOG_INFO("clean task finished", K(ret), K(*this));
return ret;
@ -412,6 +413,8 @@ int ObDropIndexTask::serialize_params_to_message(char *buf, const int64_t buf_si
if (OB_UNLIKELY(nullptr == buf || buf_size <= 0)) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("invalid arg", K(ret), KP(buf), K(buf_size));
} else if (OB_FAIL(ObDDLTask::serialize_params_to_message(buf, buf_size, pos))) {
LOG_WARN("ObDDLTask serialize failed", K(ret));
} else if (OB_FAIL(drop_index_arg_.serialize(buf, buf_size, pos))) {
LOG_WARN("serialize failed", K(ret));
}
@ -424,7 +427,9 @@ int ObDropIndexTask::deserlize_params_from_message(const uint64_t tenant_id, con
obrpc::ObDropIndexArg tmp_drop_index_arg;
if (OB_UNLIKELY(!is_valid_tenant_id(tenant_id) || nullptr == buf || buf_size <= 0)) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("invalid arguments", K(ret), K(tenant_id), KP(buf), K(buf_size));
LOG_WARN("invalid arg", K(ret), K(tenant_id), KP(buf), K(buf_size));
} else if (OB_FAIL(ObDDLTask::deserlize_params_from_message(tenant_id, buf, buf_size, pos))) {
LOG_WARN("ObDDLTask deserlize failed", K(ret));
} else if (OB_FAIL(tmp_drop_index_arg.deserialize(buf, buf_size, pos))) {
LOG_WARN("deserialize failed", K(ret));
} else if (OB_FAIL(ObDDLUtil::replace_user_tenant_id(tenant_id, tmp_drop_index_arg))) {
@ -437,7 +442,7 @@ int ObDropIndexTask::deserlize_params_from_message(const uint64_t tenant_id, con
int64_t ObDropIndexTask::get_serialize_param_size() const
{
return drop_index_arg_.get_serialize_size();
return drop_index_arg_.get_serialize_size() + ObDDLTask::get_serialize_param_size();
}
void ObDropIndexTask::flt_set_task_span_tag() const