summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-05-12 15:14:50 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2023-05-12 15:14:50 +0300
commit00353b7bd68277eb32ed8ef56ef97c336c674ad4 (patch)
tree088f83c84d89982a998c5885a8412c59c10af27e
parentc271057288f71746d1816824f338f2d9c47f67c1 (diff)
parentc9eff1a144ba44846373660a30d342d3f0dc91a5 (diff)
downloadmariadb-git-bb-10.6-MDEV-31254.tar.gz
Merge 10.5 into 10.6bb-10.6-MDEV-31254
-rw-r--r--storage/innobase/buf/buf0flu.cc14
-rw-r--r--storage/innobase/buf/buf0rea.cc3
-rw-r--r--storage/innobase/include/fil0fil.h2
3 files changed, 11 insertions, 8 deletions
diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc
index 73fc2957ebb..68dbaee5e7d 100644
--- a/storage/innobase/buf/buf0flu.cc
+++ b/storage/innobase/buf/buf0flu.cc
@@ -1005,11 +1005,19 @@ uint32_t fil_space_t::flush_freed(bool writable)
mysql_mutex_assert_not_owner(&buf_pool.flush_list_mutex);
mysql_mutex_assert_not_owner(&buf_pool.mutex);
- freed_range_mutex.lock();
- if (freed_ranges.empty() || log_sys.get_flushed_lsn() < get_last_freed_lsn())
+ for (;;)
{
+ freed_range_mutex.lock();
+ if (freed_ranges.empty())
+ {
+ freed_range_mutex.unlock();
+ return 0;
+ }
+ const lsn_t flush_lsn= last_freed_lsn;
+ if (log_sys.get_flushed_lsn() >= flush_lsn)
+ break;
freed_range_mutex.unlock();
- return 0;
+ log_write_up_to(flush_lsn, true);
}
const unsigned physical{physical_size()};
diff --git a/storage/innobase/buf/buf0rea.cc b/storage/innobase/buf/buf0rea.cc
index 5b679efe9b6..c2ab50cc674 100644
--- a/storage/innobase/buf/buf0rea.cc
+++ b/storage/innobase/buf/buf0rea.cc
@@ -265,9 +265,6 @@ buf_read_page_low(
buf_page_t* bpage;
if (buf_dblwr.is_inside(page_id)) {
- ib::error() << "Trying to read doublewrite buffer page "
- << page_id;
- ut_ad(0);
space->release();
return DB_PAGE_CORRUPTED;
}
diff --git a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
index 165994eef35..3d88e6ad48f 100644
--- a/storage/innobase/include/fil0fil.h
+++ b/storage/innobase/include/fil0fil.h
@@ -640,8 +640,6 @@ public:
/** Close all tablespace files at shutdown */
static void close_all();
- /** @return last_freed_lsn */
- lsn_t get_last_freed_lsn() { return last_freed_lsn; }
/** Update last_freed_lsn */
void update_last_freed_lsn(lsn_t lsn)
{