Skip to content

Commit

Permalink
Merge branch 'merge-xtradb-5.6' into 10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cvicentiu committed Aug 2, 2017
2 parents 60c9485 + 04ae120 commit b278c02
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
16 changes: 14 additions & 2 deletions storage/xtradb/buf/buf0flu.cc
Expand Up @@ -2781,7 +2781,10 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
when SRV_SHUTDOWN_CLEANUP is set other threads like the master
and the purge threads may be working as well. We start flushing
the buffer pool but can't be sure that no new pages are being
dirtied until we enter SRV_SHUTDOWN_FLUSH_PHASE phase. */
dirtied until we enter SRV_SHUTDOWN_FLUSH_PHASE phase. Because
the LRU manager thread is also flushing at SRV_SHUTDOWN_CLEANUP
but not SRV_SHUTDOWN_FLUSH_PHASE, we only leave the
SRV_SHUTDOWN_CLEANUP loop when the LRU manager quits. */

do {
n_flushed = page_cleaner_do_flush_batch(PCT_IO(100), LSN_MAX);
Expand All @@ -2790,7 +2793,10 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
if (n_flushed == 0) {
os_thread_sleep(100000);
}
} while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP);

os_rmb;
} while (srv_shutdown_state == SRV_SHUTDOWN_CLEANUP
|| buf_lru_manager_is_active);

/* At this point all threads including the master and the purge
thread must have been suspended. */
Expand All @@ -2807,6 +2813,11 @@ DECLARE_THREAD(buf_flush_page_cleaner_thread)(
buf_flush_wait_batch_end(NULL, BUF_FLUSH_LIST);
buf_flush_wait_LRU_batch_end();

#ifdef UNIV_DEBUG
os_rmb;
ut_ad(!buf_lru_manager_is_active);
#endif

bool success;

do {
Expand Down Expand Up @@ -2885,6 +2896,7 @@ DECLARE_THREAD(buf_flush_lru_manager_thread)(
}

buf_lru_manager_is_active = false;
os_wmb;

/* We count the number of threads in os_thread_exit(). A created
thread should always use that to exit and not use return() to exit. */
Expand Down
2 changes: 1 addition & 1 deletion storage/xtradb/include/univ.i
Expand Up @@ -48,7 +48,7 @@ Created 1/20/1994 Heikki Tuuri
#define INNODB_VERSION_BUGFIX 36

#ifndef PERCONA_INNODB_VERSION
#define PERCONA_INNODB_VERSION 82.0
#define PERCONA_INNODB_VERSION 82.1
#endif

/* Enable UNIV_LOG_ARCHIVE in XtraDB */
Expand Down
2 changes: 2 additions & 0 deletions storage/xtradb/log/log0log.cc
Expand Up @@ -3577,6 +3577,7 @@ logs_empty_and_mark_files_at_shutdown(void)
before proceeding further. */
srv_shutdown_state = SRV_SHUTDOWN_FLUSH_PHASE;
count = 0;
os_rmb;
while (buf_page_cleaner_is_active || buf_lru_manager_is_active) {
if (srv_print_verbose_log && count == 0) {
ib_logf(IB_LOG_LEVEL_INFO,
Expand All @@ -3588,6 +3589,7 @@ logs_empty_and_mark_files_at_shutdown(void)
if (count > 600) {
count = 0;
}
os_rmb;
}

mutex_enter(&log_sys->mutex);
Expand Down

0 comments on commit b278c02

Please sign in to comment.