fix the unprocessed state in xa rollback and rollback to sp concurrent scenarios
This commit is contained in:
@ -513,6 +513,7 @@ int ObSqlTransControl::start_stmt(ObExecContext &exec_ctx)
|
||||
OZ (txs->sql_stmt_start_hook(session->get_xid(), *session->get_tx_desc(), session->get_sessid(), get_real_session_id(*session)));
|
||||
if (OB_SUCC(ret)) {
|
||||
start_hook = true;
|
||||
OX (session->get_tx_desc()->clear_interrupt());
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)
|
||||
|
||||
@ -128,6 +128,7 @@ enum ObTxAbortCause
|
||||
PARTICIPANT_STATE_INCOMPLETE = 7,
|
||||
PARTICIPANTS_SET_INCOMPLETE = 8,
|
||||
END_STMT_FAIL = 9,
|
||||
EXPLICIT_ROLLBACK = 10,
|
||||
};
|
||||
|
||||
enum class ObTxClass { USER, SYS };
|
||||
|
||||
@ -425,6 +425,7 @@ int ObTransService::end_1pc_trans(ObTxDesc &trans_desc,
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
TRANS_LOG(WARN, "invalid argument", K(ret), K(trans_desc));
|
||||
} else if (is_rollback) {
|
||||
interrupt(trans_desc, ObTxAbortCause::EXPLICIT_ROLLBACK);
|
||||
if (OB_FAIL(rollback_tx(trans_desc))) {
|
||||
TRANS_LOG(WARN, "rollback 1pc trans fail", KR(ret));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user