summaryrefslogtreecommitdiff
path: root/innobase/lock
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2002-11-07 14:47:25 +0200
committerunknown <heikki@hundin.mysql.fi>2002-11-07 14:47:25 +0200
commit4fa5e50edbba856a2fe60d1dde7eb5571f42bd68 (patch)
tree55c72cdc1d8c91f0b56057c2e2c01f7ce3c93883 /innobase/lock
parent8fc4319ae36e106ed8474a567bd1bd00e6337d5f (diff)
downloadmariadb-git-4fa5e50edbba856a2fe60d1dde7eb5571f42bd68.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 innobase/include/que0que.h: Fix hang introduced by selective deadlock resolution innobase/include/trx0trx.h: Fix hang introduced by selective deadlock resolution innobase/include/ut0ut.h: Fix hang introduced by selective deadlock resolution innobase/lock/lock0lock.c: Fix hang introduced by selective deadlock resolution innobase/log/log0log.c: Fix hang introduced by selective deadlock resolution innobase/que/que0que.c: Fix hang introduced by selective deadlock resolution innobase/row/row0mysql.c: Fix hang introduced by selective deadlock resolution + corruption caused by lock timeout or sel deadl res in ON DELETE CASCADE innobase/srv/srv0srv.c: Fix hang introduced by selective deadlock resolution + corruption caused by lock timeout or sel deadl res in ON DELETE CASCADE innobase/trx/trx0sys.c: Fix hang introduced by selective deadlock resolution innobase/trx/trx0trx.c: Fix hang introduced by selective deadlock resolution
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));