summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2023-02-15 16:30:53 +0100
committerSergei Golubchik <serg@mariadb.org>2023-02-15 16:30:53 +0100
commitb45ed284a69cdbffac61bdcf74bf86fa7b7391a4 (patch)
treede26ce8e0a5aa40889e889d758e3a3a98b9f71a8 /sql/rpl_rli.cc
parentcc182aca9352fb7efde0deb0a83844e1d5f0c64c (diff)
parentcafba8761af55ae16cc69c9b53a341340a845b36 (diff)
downloadmariadb-git-bb-11.0-all-builders.tar.gz
Merge branch '10.11' into 11.0bb-11.0-all-builders
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r--sql/rpl_rli.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index edbb630c781..a8af950fa08 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -2283,11 +2283,9 @@ void rpl_group_info::cleanup_context(THD *thd, bool error)
if (unlikely(error))
{
- /*
- trans_rollback above does not rollback XA transactions
- (todo/fixme consider to do so.
- */
- if (thd->transaction->xid_state.is_explicit_XA())
+ // leave alone any XA prepared transactions
+ if (thd->transaction->xid_state.is_explicit_XA() &&
+ thd->transaction->xid_state.get_state_code() != XA_PREPARED)
xa_trans_force_rollback(thd);
thd->release_transactional_locks();