diff options
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/buf/buf0dblwr.cc | 2 | ||||
-rw-r--r-- | storage/innobase/buf/buf0flu.cc | 8 | ||||
-rw-r--r-- | storage/innobase/include/buf0buf.h | 5 |
3 files changed, 8 insertions, 7 deletions
diff --git a/storage/innobase/buf/buf0dblwr.cc b/storage/innobase/buf/buf0dblwr.cc index c512cf01579..1b7a2d9608a 100644 --- a/storage/innobase/buf/buf0dblwr.cc +++ b/storage/innobase/buf/buf0dblwr.cc @@ -356,7 +356,7 @@ void buf_dblwr_t::recover() if (recv_sys.scanned_lsn < lsn) { - ib::warn() << "Ignoring a doublewrite copy of page " << page_id + ib::info() << "Ignoring a doublewrite copy of page " << page_id << " with future log sequence number " << lsn; continue; } diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index 018770c0e92..1243bc67a72 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -211,10 +211,10 @@ void buf_pool_t::insert_into_flush_list(buf_block_t *block, lsn_t lsn) @param clear whether to invoke buf_page_t::clear_oldest_modification() */ void buf_pool_t::delete_from_flush_list(buf_page_t *bpage, bool clear) { - if (clear) - bpage->clear_oldest_modification(); delete_from_flush_list_low(bpage); stat.flush_list_bytes-= bpage->physical_size(); + if (clear) + bpage->clear_oldest_modification(); #ifdef UNIV_DEBUG buf_flush_validate_skip(); #endif /* UNIV_DEBUG */ @@ -312,10 +312,10 @@ buf_flush_relocate_on_flush_list( the bpage from the flush list. */ buf_pool.flush_hp.adjust(bpage); - bpage->clear_oldest_modification(); - prev = UT_LIST_GET_PREV(list, bpage); UT_LIST_REMOVE(buf_pool.flush_list, bpage); + + bpage->clear_oldest_modification(); } else { /* bpage was removed from buf_pool.flush_list since we last checked, and before we acquired diff --git a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h index 18a68a44d6f..233d5d9dee8 100644 --- a/storage/innobase/include/buf0buf.h +++ b/storage/innobase/include/buf0buf.h @@ -853,7 +853,7 @@ public: lsn_t oldest_modification() const { return oldest_modification_; } /** Set oldest_modification when adding to buf_pool.flush_list */ inline void set_oldest_modification(lsn_t lsn); - /** Clear oldest_modification when removing from buf_pool.flush_list */ + /** Clear oldest_modification after removing from buf_pool.flush_list */ inline void clear_oldest_modification(); /** Note that a block is no longer dirty, while not removing it from buf_pool.flush_list */ @@ -2146,10 +2146,11 @@ inline void buf_page_t::set_oldest_modification(lsn_t lsn) { mysql_mutex_assert_owner(&buf_pool.flush_list_mutex); ut_ad(oldest_modification() <= 1); + ut_ad(lsn > 2); oldest_modification_= lsn; } -/** Clear oldest_modification when removing from buf_pool.flush_list */ +/** Clear oldest_modification after removing from buf_pool.flush_list */ inline void buf_page_t::clear_oldest_modification() { mysql_mutex_assert_owner(&buf_pool.flush_list_mutex); |