set the ctx_tx_data's state as ABORT when kill trx
This commit is contained in:
@ -358,6 +358,13 @@ int ObPartTransCtx::trans_kill_()
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
TRANS_LOG(INFO, "trans killed", K(trans_id_));
|
TRANS_LOG(INFO, "trans killed", K(trans_id_));
|
||||||
|
|
||||||
|
if (ctx_tx_data_.get_state() == ObTxData::RUNNING) {
|
||||||
|
if (OB_FAIL(ctx_tx_data_.set_state(ObTxData::ABORT))) {
|
||||||
|
TRANS_LOG(WARN, "set abort state in ctx_tx_data_ failed", K(ret));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mt_ctx_.trans_kill();
|
mt_ctx_.trans_kill();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -5943,10 +5950,14 @@ int ObPartTransCtx::on_local_abort_tx_()
|
|||||||
|
|
||||||
ObTxBufferNodeArray tmp_array;
|
ObTxBufferNodeArray tmp_array;
|
||||||
|
|
||||||
start_us = ObTimeUtility::fast_current_time();
|
if (!has_persisted_log_() && OB_FAIL(ctx_tx_data_.set_state(ObTxData::ABORT))) {
|
||||||
if (OB_FAIL(mt_ctx_.trans_end(false, -1 /*unused*/, ctx_tx_data_.get_end_log_ts()))) {
|
TRANS_LOG(WARN, "set abort state failed", K(ret));
|
||||||
|
} else if (OB_FALSE_IT(start_us = ObTimeUtility::fast_current_time())) {
|
||||||
|
|
||||||
|
} else if (OB_FAIL(mt_ctx_.trans_end(false, -1 /*unused*/, ctx_tx_data_.get_end_log_ts()))) {
|
||||||
TRANS_LOG(WARN, "trans end error", KR(ret), K(commit_version), "context", *this);
|
TRANS_LOG(WARN, "trans end error", KR(ret), K(commit_version), "context", *this);
|
||||||
} else if (FALSE_IT(end_us = ObTimeUtility::fast_current_time())) {
|
} else if (FALSE_IT(end_us = ObTimeUtility::fast_current_time())) {
|
||||||
|
|
||||||
} else if (OB_FAIL(trans_clear_())) {
|
} else if (OB_FAIL(trans_clear_())) {
|
||||||
TRANS_LOG(WARN, "local tx clear error", KR(ret), K(*this));
|
TRANS_LOG(WARN, "local tx clear error", KR(ret), K(*this));
|
||||||
} else if (OB_FAIL(gen_total_mds_array_(tmp_array))) {
|
} else if (OB_FAIL(gen_total_mds_array_(tmp_array))) {
|
||||||
@ -5971,7 +5982,6 @@ int ObPartTransCtx::on_local_abort_tx_()
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObPartTransCtx::dump_2_text(FILE *fd)
|
int ObPartTransCtx::dump_2_text(FILE *fd)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
Reference in New Issue
Block a user