diff options
author | Sunny Bains <Sunny.Bains@Oracle.Com> | 2010-04-28 06:47:47 +1000 |
---|---|---|
committer | Sunny Bains <Sunny.Bains@Oracle.Com> | 2010-04-28 06:47:47 +1000 |
commit | 248dd65fe76e8fcee1f7eed59f94d331bb000dea (patch) | |
tree | 3ba21a510fbd6e1627140731b13b3b16edc9a6a2 /storage/innobase/include/trx0trx.h | |
parent | e2a3bb5acc3a75e4aa4e382eb048db728eae7cdd (diff) | |
download | mariadb-git-248dd65fe76e8fcee1f7eed59f94d331bb000dea.tar.gz |
Fix bug introduced by r3038. When a transaction is rolled back by the
lock monitor thread, it may have locks that are granted to waited to
waiting transactions. These waiting transactions will need to be woken
up but their trx->lock_wait_timeout flag will be FALSE causing the old
code to break. What we need is a flag that covers the entire lock
release process not individual transactions. The fix is to move the
flag out of trx_t and into srv_sys_t.
Diffstat (limited to 'storage/innobase/include/trx0trx.h')
-rw-r--r-- | storage/innobase/include/trx0trx.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h index 093b53d9543..6872fb463c0 100644 --- a/storage/innobase/include/trx0trx.h +++ b/storage/innobase/include/trx0trx.h @@ -647,16 +647,6 @@ struct trx_struct{ TRX_QUE_LOCK_WAIT, this points to the lock request, otherwise this is NULL */ - ibool lock_wait_timeout; - /* when this transaction is rolled - back because the lock wait timed out. - We use this flag to distinguish between - a wait time out detected by the lock - monitor thread vs other code paths. For - the former we already have the the - srv_sys->mutex locked. For the other - cases we need to acquire it explicitly - when releasing a suspended thread. */ ibool was_chosen_as_deadlock_victim; /* when the transaction decides to wait for a lock, it sets this to FALSE; |