mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-15216 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status upon operation inside XA
don't implicitly commit or rollback in mysql_admin_table() unless the statement has CF_IMPLICIT_COMMIT_END flag.
This commit is contained in:
@ -1064,7 +1064,9 @@ send_result_message:
|
||||
}
|
||||
else
|
||||
{
|
||||
if (trans_commit_stmt(thd) || trans_commit_implicit(thd))
|
||||
if (trans_commit_stmt(thd) ||
|
||||
(stmt_causes_implicit_commit(thd, CF_IMPLICIT_COMMIT_END) &&
|
||||
trans_commit_implicit(thd)))
|
||||
goto err;
|
||||
}
|
||||
close_thread_tables(thd);
|
||||
@ -1098,7 +1100,8 @@ send_result_message:
|
||||
err:
|
||||
/* Make sure this table instance is not reused after the failure. */
|
||||
trans_rollback_stmt(thd);
|
||||
trans_rollback(thd);
|
||||
if (stmt_causes_implicit_commit(thd, CF_IMPLICIT_COMMIT_END))
|
||||
trans_rollback(thd);
|
||||
if (table && table->table)
|
||||
{
|
||||
table->table->m_needs_reopen= true;
|
||||
|
Reference in New Issue
Block a user