Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1(EOL), 10.2(EOL), 10.3(EOL)
-
None
Description
commit ba576c5b787de0b2218843d83f4524279ae7848b
if (thd->is_error() || (thd->variables.option_bits & OPTION_MASTER_SQL_ERROR))
|
trans_rollback_stmt(thd);
|
#ifdef WITH_WSREP
|
if (thd->spcont &&
|
(thd->wsrep_conflict_state == MUST_ABORT ||
|
thd->wsrep_conflict_state == ABORTED ||
|
thd->wsrep_conflict_state == CERT_FAILURE))
|
{
|
/*
|
The error was cleared, but THD was aborted by wsrep and
|
wsrep_conflict_state is still set accordingly. This
|
situation is expected if we are running a stored procedure
|
that declares a handler that catches ER_LOCK_DEADLOCK error.
|
In which case the error may have been cleared in method
|
sp_rcontext::handle_sql_condition().
|
*/
|
trans_rollback_stmt(thd);
|
thd->wsrep_conflict_state= NO_CONFLICT;
|
thd->killed= NOT_KILLED;
|
}
|
#endif /* WITH_WSREP */
|
else
|
{
|
/* If commit fails, we should be able to reset the OK status. */
|
thd->get_stmt_da()->set_overwrite_status(true);
|
trans_commit_stmt(thd);
|
thd->get_stmt_da()->set_overwrite_status(false);
|
}
|