summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-05-15 09:02:32 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2023-05-15 09:02:32 +0300
commita3e5b5c4db47cd29dc090d27db1d7f915cf774f6 (patch)
treec701f5e08f5d35a5f6077c7af61e55ad531426a1
parentf522b0f2303e5556e3fc98c50cdc7999f6f5834a (diff)
parentc9eff1a144ba44846373660a30d342d3f0dc91a5 (diff)
downloadmariadb-git-10.6.tar.gz
Merge 10.5 into 10.610.6
-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)
{