mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Merge branch '10.1' into 10.2
This commit is contained in:
@@ -6236,6 +6236,24 @@ finish:
|
||||
}
|
||||
if (thd->is_error() || (thd->variables.option_bits & OPTION_MASTER_SQL_ERROR))
|
||||
trans_rollback_stmt(thd);
|
||||
#ifdef WITH_WSREP
|
||||
else if (thd->spcont &&
|
||||
(thd->wsrep_conflict_state == MUST_ABORT ||
|
||||
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. */
|
||||
|
||||
Reference in New Issue
Block a user