diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-10-20 12:59:07 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-10-20 12:59:07 +0300 |
commit | 73dd5a6fc01be89b54d9cafb0b2dfd2224885099 (patch) | |
tree | 61ebd8a6ce6893e606681ea269d4730e00faa2f7 | |
parent | 97ebfd923cab11d320500e2ace781e5e1c04bb4b (diff) | |
download | mariadb-git-73dd5a6fc01be89b54d9cafb0b2dfd2224885099.tar.gz |
fixup! 97ebfd923cab11d320500e2ace781e5e1c04bb4b
The test encryption.innodb_encrypt_log would sometimes SIGSEGV.
-rw-r--r-- | storage/innobase/buf/buf0flu.cc | 5 | ||||
-rw-r--r-- | storage/innobase/srv/srv0start.cc | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index 232368e5b54..0dbe3cb65d1 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -1818,6 +1818,11 @@ static void buf_flush_wait(lsn_t lsn) os_aio_wait_until_no_pending_writes(); mysql_mutex_lock(&buf_pool.flush_list_mutex); } + + /* Wait for the checkpoint. */ + while (buf_flush_sync_lsn) + my_cond_wait(&buf_pool.done_flush_list, + &buf_pool.flush_list_mutex.m_mutex); } /** Wait until all persistent pages are flushed up to a limit. diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 0c48dbcebfc..d64f00c9691 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -330,13 +330,13 @@ static dberr_t create_log_file(bool create_new_db, lsn_t lsn, srv_startup_is_before_trx_rollback_phase = false; } + /* Enable checkpoints in buf_flush_page_cleaner(). */ + recv_sys.recovery_on = false; mysql_mutex_unlock(&log_sys.mutex); log_make_checkpoint(); log_buffer_flush_to_disk(); - /* Enable checkpoints in buf_flush_page_cleaner(). */ - recv_sys.recovery_on = false; return DB_SUCCESS; } @@ -888,11 +888,9 @@ static lsn_t srv_prepare_to_delete_redo_log_file(bool old_exists) { DBUG_ENTER("srv_prepare_to_delete_redo_log_file"); - mysql_mutex_lock(&buf_pool.flush_list_mutex); /* Disable checkpoints in the page cleaner. */ ut_ad(!recv_sys.recovery_on); recv_sys.recovery_on= true; - mysql_mutex_unlock(&buf_pool.flush_list_mutex); /* Clean the buffer pool. */ buf_flush_sync_batch(log_sys.get_lsn()); |