diff options
author | Marko Mäkelä <marko.makela@oracle.com> | 2011-08-22 17:03:07 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@oracle.com> | 2011-08-22 17:03:07 +0300 |
commit | 49ee12d03b763a460cfcc371566465019a4dc067 (patch) | |
tree | e2ba3efb973d0fb3acbb3851a2849278a6e8742a /storage | |
parent | f8ee5b48bacc7800f1803c8c3cd2e741ef4c2ba2 (diff) | |
download | mariadb-git-49ee12d03b763a460cfcc371566465019a4dc067.tar.gz |
Bug #11766591 59733: POSSIBLE DEADLOCK WHEN BUFFERED CHANGES ARE TO BE DISCARDED
The fix in revision id marko.makela@oracle.com-20110815091143-h3zbvm0pv8ni3qql
introduced a false UNIV_SYNC_DEBUG alarm. Relax the assertion.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innodb_plugin/sync/sync0sync.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/storage/innodb_plugin/sync/sync0sync.c b/storage/innodb_plugin/sync/sync0sync.c index 1b97e1f11f3..64aadffdfad 100644 --- a/storage/innodb_plugin/sync/sync0sync.c +++ b/storage/innodb_plugin/sync/sync0sync.c @@ -1248,7 +1248,13 @@ sync_thread_add_level( TRUE)); break; case SYNC_IBUF_TREE_NODE_NEW: - ut_a(sync_thread_levels_contain(array, SYNC_IBUF_MUTEX)); + /* ibuf_add_free_page() allocates new pages for the + change buffer while only holding the tablespace + x-latch. These pre-allocated new pages may only be + taken in use while holding ibuf_mutex, in + btr_page_alloc_for_ibuf(). */ + ut_a(sync_thread_levels_contain(array, SYNC_IBUF_MUTEX) + || sync_thread_levels_contain(array, SYNC_FSP)); break; case SYNC_IBUF_INDEX_TREE: if (sync_thread_levels_contain(array, SYNC_FSP)) { |