diff options
author | Nirbhay Choubey <nirbhay@skysql.com> | 2014-04-09 12:25:47 -0400 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@skysql.com> | 2014-04-09 12:25:47 -0400 |
commit | 9d911608f15005be48dad55440e87a6982067233 (patch) | |
tree | 34312354f96d6d796547f8934c9da4ba680bb7f7 /storage | |
parent | 421326310168e2b0a83eddcf9520336e1d58ea42 (diff) | |
download | mariadb-git-9d911608f15005be48dad55440e87a6982067233.tar.gz |
Fixes for some test failures.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 7 | ||||
-rw-r--r-- | storage/xtradb/handler/ha_innodb.cc | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 3b704208bbc..b6913bd2e94 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -16998,6 +16998,7 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, lock_cancel_waiting_and_release(wait_lock); } + wsrep_thd_UNLOCK(thd); wsrep_thd_awake(thd, signal); } else { /* abort currently executing query */ @@ -17005,6 +17006,9 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, wsrep_thd_thread_id(thd))); WSREP_DEBUG("kill query for: %ld", wsrep_thd_thread_id(thd)); + /* Note that innobase_kill_connection will take lock_mutex + and trx_mutex */ + wsrep_thd_UNLOCK(thd); wsrep_thd_awake(thd, signal); /* for BF thd, we need to prevent him from committing */ @@ -17061,15 +17065,16 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, WSREP_DEBUG("signaling aborter"); mysql_cond_signal(&COND_wsrep_rollback); mysql_mutex_unlock(&LOCK_wsrep_rollback); + wsrep_thd_UNLOCK(thd); break; } default: WSREP_WARN("bad wsrep query state: %d", wsrep_thd_query_state(thd)); + wsrep_thd_UNLOCK(thd); break; } - wsrep_thd_UNLOCK(thd); DBUG_RETURN(0); } diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index e2c7b1158aa..d3d90ebeab9 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -17905,6 +17905,7 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, lock_cancel_waiting_and_release(wait_lock); } + wsrep_thd_UNLOCK(thd); wsrep_thd_awake(thd, signal); } else { /* abort currently executing query */ @@ -17914,6 +17915,7 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, wsrep_thd_thread_id(thd)); /* Note that innobase_kill_connection will take lock_mutex and trx_mutex */ + wsrep_thd_UNLOCK(thd); wsrep_thd_awake(thd, signal); /* for BF thd, we need to prevent him from committing */ @@ -17970,15 +17972,16 @@ wsrep_innobase_kill_one_trx(void * const bf_thd_ptr, WSREP_DEBUG("signaling aborter"); mysql_cond_signal(&COND_wsrep_rollback); mysql_mutex_unlock(&LOCK_wsrep_rollback); + wsrep_thd_UNLOCK(thd); break; } default: WSREP_WARN("bad wsrep query state: %d", wsrep_thd_query_state(thd)); + wsrep_thd_UNLOCK(thd); break; } - wsrep_thd_UNLOCK(thd); DBUG_RETURN(0); } |