diff options
author | unknown <heikki@hundin.mysql.fi> | 2002-11-07 14:47:25 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2002-11-07 14:47:25 +0200 |
commit | 4fa5e50edbba856a2fe60d1dde7eb5571f42bd68 (patch) | |
tree | 55c72cdc1d8c91f0b56057c2e2c01f7ce3c93883 /innobase/include/trx0trx.h | |
parent | 8fc4319ae36e106ed8474a567bd1bd00e6337d5f (diff) | |
download | mariadb-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/include/trx0trx.h')
-rw-r--r-- | innobase/include/trx0trx.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/innobase/include/trx0trx.h b/innobase/include/trx0trx.h index 1468ef449e7..34f820f03e7 100644 --- a/innobase/include/trx0trx.h +++ b/innobase/include/trx0trx.h @@ -429,7 +429,10 @@ struct trx_struct{ MySQL */ /*------------------------------*/ ulint error_state; /* 0 if no error, otherwise error - number */ + number; NOTE That ONLY the thread + doing the transaction is allowed to + set this field: this is NOT protected + by the kernel mutex */ void* error_info; /* if the error number indicates a duplicate key error, a pointer to the problematic index is stored here */ @@ -466,6 +469,12 @@ struct trx_struct{ TRX_QUE_LOCK_WAIT, this points to the lock request, otherwise this is NULL */ + ibool was_chosen_as_deadlock_victim; + /* when the transaction decides to wait + for a lock, this it sets this to FALSE; + if another transaction chooses this + transaction as a victim in deadlock + resolution, it sets this to TRUE */ time_t wait_started; /* lock wait started at this time */ UT_LIST_BASE_NODE_T(que_thr_t) wait_thrs; /* query threads belonging to this |