summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@oracle.com>2011-09-14 15:39:36 +0300
committerMarko Mäkelä <marko.makela@oracle.com>2011-09-14 15:39:36 +0300
commitd60cdefc0da9e2d5a49499763fdf5577d9fbb609 (patch)
treef3299873d03585a8d7ea3c3589ee8b074d082048 /storage
parent37f4deccd0f3c23e7af6c2e5f5f45d5225e1c01d (diff)
downloadmariadb-git-d60cdefc0da9e2d5a49499763fdf5577d9fbb609.tar.gz
Hopefully really final fix of Bug#11766591 59733: Possible deadlock
when buffered changes are to be discarded sync_thread_add_level(level = SYNC_IBUF_INDEX_TREE): Relax a too strict condition that the thread must not be holding locks below SYNC_FSP_PAGE. It is perfectly valid to hold any latch above SYNC_IBUF_INDEX_TREE when acquiring the insert buffer tree latch.
Diffstat (limited to 'storage')
-rw-r--r--storage/innodb_plugin/sync/sync0sync.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/storage/innodb_plugin/sync/sync0sync.c b/storage/innodb_plugin/sync/sync0sync.c
index 64aadffdfad..3640e204525 100644
--- a/storage/innodb_plugin/sync/sync0sync.c
+++ b/storage/innodb_plugin/sync/sync0sync.c
@@ -1258,8 +1258,7 @@ sync_thread_add_level(
break;
case SYNC_IBUF_INDEX_TREE:
if (sync_thread_levels_contain(array, SYNC_FSP)) {
- ut_a(sync_thread_levels_g(
- array, SYNC_FSP_PAGE - 1, TRUE));
+ ut_a(sync_thread_levels_g(array, level - 1, TRUE));
} else {
ut_a(sync_thread_levels_g(
array, SYNC_IBUF_TREE_NODE - 1, TRUE));