summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-01-14 11:37:51 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-01-14 11:37:51 +0200
commit248dc12e60d5e3ba269fe2a13689bca32790f9f5 (patch)
tree81387df3737a081fd0ba855d8275d7aab2283e40 /storage
parentf5ee7fb31f25c88113bdd688d8764a9eaed339bc (diff)
parent7372fe4da195f465a2f13984dcd89325ec361c43 (diff)
downloadmariadb-git-248dc12e60d5e3ba269fe2a13689bca32790f9f5.tar.gz
Merge 10.1 into 10.2
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/trx/trx0trx.cc6
-rw-r--r--storage/xtradb/trx/trx0trx.cc6
2 files changed, 12 insertions, 0 deletions
diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc
index 93fc1bb0ed2..704c52ff9af 100644
--- a/storage/innobase/trx/trx0trx.cc
+++ b/storage/innobase/trx/trx0trx.cc
@@ -2738,6 +2738,12 @@ trx_get_trx_by_xid_low(
&& trx_state_eq(trx, TRX_STATE_PREPARED)
&& xid->eq((XID*)trx->xid)) {
+#ifdef WITH_WSREP
+ /* The commit of a prepared recovered Galera
+ transaction needs a valid trx->xid for
+ invoking trx_sys_update_wsrep_checkpoint(). */
+ if (wsrep_is_wsrep_xid(trx->xid)) break;
+#endif
/* Invalidate the XID, so that subsequent calls
will not find it. */
trx->xid->null();
diff --git a/storage/xtradb/trx/trx0trx.cc b/storage/xtradb/trx/trx0trx.cc
index 6a033fbeb09..17cba81daf3 100644
--- a/storage/xtradb/trx/trx0trx.cc
+++ b/storage/xtradb/trx/trx0trx.cc
@@ -2578,6 +2578,12 @@ trx_get_trx_by_xid_low(
&& memcmp(xid->data, trx->xid.data,
xid->gtrid_length + xid->bqual_length) == 0) {
+#ifdef WITH_WSREP
+ /* The commit of a prepared recovered Galera
+ transaction needs a valid trx->xid for
+ invoking trx_sys_update_wsrep_checkpoint(). */
+ if (wsrep_is_wsrep_xid(&trx->xid)) break;
+#endif
/* Invalidate the XID, so that subsequent calls
will not find it. */
trx->xid.null();