Commit 59e022c1 authored by Marko Mäkelä's avatar Marko Mäkelä

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.
parent 3cd36cb0
...@@ -1258,8 +1258,7 @@ sync_thread_add_level( ...@@ -1258,8 +1258,7 @@ sync_thread_add_level(
break; break;
case SYNC_IBUF_INDEX_TREE: case SYNC_IBUF_INDEX_TREE:
if (sync_thread_levels_contain(array, SYNC_FSP)) { if (sync_thread_levels_contain(array, SYNC_FSP)) {
ut_a(sync_thread_levels_g( ut_a(sync_thread_levels_g(array, level - 1, TRUE));
array, SYNC_FSP_PAGE - 1, TRUE));
} else { } else {
ut_a(sync_thread_levels_g( ut_a(sync_thread_levels_g(
array, SYNC_IBUF_TREE_NODE - 1, TRUE)); array, SYNC_IBUF_TREE_NODE - 1, TRUE));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment