summaryrefslogtreecommitdiff
path: root/storage/xtradb/buf/buf0flu.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/buf/buf0flu.cc')
-rw-r--r--storage/xtradb/buf/buf0flu.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/storage/xtradb/buf/buf0flu.cc b/storage/xtradb/buf/buf0flu.cc
index 168f0a438a6..09f07bbd696 100644
--- a/storage/xtradb/buf/buf0flu.cc
+++ b/storage/xtradb/buf/buf0flu.cc
@@ -305,6 +305,8 @@ buf_flush_init_flush_rbt(void)
buf_flush_list_mutex_enter(buf_pool);
+ ut_ad(buf_pool->flush_rbt == NULL);
+
/* Create red black tree for speedy insertions in flush list. */
buf_pool->flush_rbt = rbt_create(
sizeof(buf_page_t*), buf_flush_block_cmp);
@@ -2220,7 +2222,7 @@ buf_flush_single_page_from_LRU(
if (ready) {
bool evict_zip;
- evict_zip = !buf_LRU_evict_from_unzip_LRU(buf_pool);;
+ evict_zip = !buf_LRU_evict_from_unzip_LRU(buf_pool);
freed = buf_LRU_free_page(bpage, evict_zip);
@@ -2627,6 +2629,11 @@ page_cleaner_sleep_if_needed(
ulint next_loop_time) /*!< in: time when next loop iteration
should start */
{
+ /* No sleep if we are cleaning the buffer pool during the shutdown
+ with everything else finished */
+ if (srv_shutdown_state == SRV_SHUTDOWN_FLUSH_PHASE)
+ return;
+
ulint cur_time = ut_time_ms();
if (next_loop_time > cur_time) {