diff options
author | Marko Mäkelä <marko.makela@oracle.com> | 2011-09-13 09:18:34 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@oracle.com> | 2011-09-13 09:18:34 +0300 |
commit | 3436169892e8aa57128d8046631bf381b75b113d (patch) | |
tree | c1dcdc3d4819e4a22590997a7d5a5df38b2182dd /storage/innobase/ibuf | |
parent | cc496eb7466487747d26d272f0559df9a07f2e34 (diff) | |
download | mariadb-git-3436169892e8aa57128d8046631bf381b75b113d.tar.gz |
Hopefully final fix of Bug#11766591 59733: Possible deadlock
when buffered changes are to be discarded
ibuf_add_free_page(): Lower the latching order of the newly allocated page
to SYNC_IBUF_TREE_NODE_NEW after latching the insert buffer tree root.
This bug always was bogus UNIV_SYNC_DEBUG alarm. The function
buf_block_dbg_add_level() is a no-op unless UNIV_SYNC_DEBUG is defined.
Diffstat (limited to 'storage/innobase/ibuf')
-rw-r--r-- | storage/innobase/ibuf/ibuf0ibuf.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c index 8f151e39958..1406b2de4e9 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.c +++ b/storage/innobase/ibuf/ibuf0ibuf.c @@ -1687,12 +1687,12 @@ ibuf_add_free_page( mutex_enter(&ibuf_mutex); + root = ibuf_tree_root_get(ibuf_data, space, &mtr); + #ifdef UNIV_SYNC_DEBUG buf_page_dbg_add_level(page, SYNC_TREE_NODE_NEW); #endif /* UNIV_SYNC_DEBUG */ - root = ibuf_tree_root_get(ibuf_data, space, &mtr); - /* Add the page to the free list and update the ibuf size data */ flst_add_last(root + PAGE_HEADER + PAGE_BTR_IBUF_FREE_LIST, |