summaryrefslogtreecommitdiff
path: root/innobase/lock
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2002-11-07 14:47:25 +0200
committerheikki@hundin.mysql.fi <>2002-11-07 14:47:25 +0200
commitb31f909d7b756813993cc0f8f0d4d707aa2c2d20 (patch)
tree55c72cdc1d8c91f0b56057c2e2c01f7ce3c93883 /innobase/lock
parentaa4e1658080ef50072f796773d2723e723d01ff0 (diff)
downloadmariadb-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.c5
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));