summaryrefslogtreecommitdiff
path: root/storage/xtradb/trx
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay@mariadb.com>2015-05-09 17:09:21 -0400
committerNirbhay Choubey <nirbhay@mariadb.com>2015-05-09 17:09:21 -0400
commite11cad9e9dd3ae0be61aec1bb50b0ddc867b10be (patch)
treed1266ef4e52851e73467a6d7bf4a3ca991b484fa /storage/xtradb/trx
parent99f496ae65a56d587e24c88df85aae7e7cfce70e (diff)
parent0880284bf715b4916cc735e19b76d1062c2bfdcf (diff)
downloadmariadb-git-e11cad9e9dd3ae0be61aec1bb50b0ddc867b10be.tar.gz
Merge tag 'mariadb-10.0.19' into 10.0-galera
Diffstat (limited to 'storage/xtradb/trx')
-rw-r--r--storage/xtradb/trx/trx0roll.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/storage/xtradb/trx/trx0roll.cc b/storage/xtradb/trx/trx0roll.cc
index 3484c1f818d..88fefe23e5d 100644
--- a/storage/xtradb/trx/trx0roll.cc
+++ b/storage/xtradb/trx/trx0roll.cc
@@ -53,6 +53,9 @@ Created 3/26/1996 Heikki Tuuri
rollback */
#define TRX_ROLL_TRUNC_THRESHOLD 1
+/** true if trx_rollback_or_clean_all_recovered() thread is active */
+bool trx_rollback_or_clean_is_active;
+
/** In crash recovery, the current trx to be rolled back; NULL otherwise */
static const trx_t* trx_roll_crash_recv_trx = NULL;
@@ -502,7 +505,7 @@ trx_release_savepoint_for_mysql(
{
trx_named_savept_t* savep;
- ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE));
+ ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE) || trx_state_eq(trx, TRX_STATE_PREPARED));
ut_ad(trx->in_mysql_trx_list);
savep = trx_savepoint_find(trx, savepoint_name);
@@ -815,6 +818,8 @@ DECLARE_THREAD(trx_rollback_or_clean_all_recovered)(
trx_rollback_or_clean_recovered(TRUE);
+ trx_rollback_or_clean_is_active = false;
+
/* We count the number of threads in os_thread_exit(). A created
thread should always use that to exit and not use return() to exit. */