mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fixed wsrep replaying for stored procedures (#1256)
- Changed replaying to always allocate a separate THD object for applying log events. This is to avoid tampering original THD state during replay process. - Return success from sp_instr_stmt::exec_core() if replaying succeeds. - Do not push warnings/errors into diagnostics area if the transaction must be replayed. This is to avoid reporting transient errors to the client. Added two tests galera_sp_bf_abort, galera_sp_insert_parallel. Wsrep-lib position updated.
This commit is contained in:
committed by
Jan Lindström
parent
fe62ff6e1c
commit
eb872ceb27
@ -1020,6 +1020,15 @@ Sql_condition* THD::raise_condition(uint sql_errno,
|
||||
if (!(variables.option_bits & OPTION_SQL_NOTES) &&
|
||||
(level == Sql_condition::WARN_LEVEL_NOTE))
|
||||
DBUG_RETURN(NULL);
|
||||
#ifdef WITH_WSREP
|
||||
/*
|
||||
Suppress warnings/errors if the wsrep THD is going to replay. The
|
||||
deadlock/interrupted errors may be transitient and should not be
|
||||
reported to the client.
|
||||
*/
|
||||
if (wsrep_must_replay(this))
|
||||
DBUG_RETURN(NULL);
|
||||
#endif /* WITH_WSREP */
|
||||
|
||||
da->opt_clear_warning_info(query_id);
|
||||
|
||||
|
Reference in New Issue
Block a user