diff options
author | heikki@hundin.mysql.fi <> | 2002-11-07 14:47:25 +0200 |
---|---|---|
committer | heikki@hundin.mysql.fi <> | 2002-11-07 14:47:25 +0200 |
commit | b31f909d7b756813993cc0f8f0d4d707aa2c2d20 (patch) | |
tree | 55c72cdc1d8c91f0b56057c2e2c01f7ce3c93883 /innobase/lock | |
parent | aa4e1658080ef50072f796773d2723e723d01ff0 (diff) | |
download | mariadb-git-b31f909d7b756813993cc0f8f0d4d707aa2c2d20.tar.gz |
Many files:
Fix hang introduced by selective deadlock resolution
srv0srv.c, row0mysql.c:
Fix hang introduced by selective deadlock resolution + corruption caused by lock timeout or sel deadl res in ON DELETE CASCADE
Diffstat (limited to 'innobase/lock')
-rw-r--r-- | innobase/lock/lock0lock.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c index 92ee5ee6cbe..7b08d6b89b8 100644 --- a/innobase/lock/lock0lock.c +++ b/innobase/lock/lock0lock.c @@ -1727,6 +1727,7 @@ index->table_name); } trx->que_state = TRX_QUE_LOCK_WAIT; + trx->was_chosen_as_deadlock_victim = FALSE; trx->wait_started = time(NULL); ut_a(que_thr_stop(thr)); @@ -3173,7 +3174,8 @@ lock_deadlock_recursive( err_buf += sprintf(err_buf, "*** WE ROLL BACK TRANSACTION (1)\n"); - wait_lock->trx->error_state = DB_DEADLOCK; + wait_lock->trx->was_chosen_as_deadlock_victim + = TRUE; lock_cancel_waiting_and_release(wait_lock); @@ -3353,6 +3355,7 @@ table->name); } trx->que_state = TRX_QUE_LOCK_WAIT; + trx->was_chosen_as_deadlock_victim = FALSE; trx->wait_started = time(NULL); ut_a(que_thr_stop(thr)); |