git » mariadb.git » commit 3655c22

upgpkg: 11.0.3-1: new upstream release

author Christian Hesse
2023-08-12 20:00:01 UTC
committer Christian Hesse
2023-08-12 20:00:01 UTC
parent 1549e544cb650db807ebf4c8b3b649f2bf566355

upgpkg: 11.0.3-1: new upstream release

0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch +0 -113
PKGBUILD +3 -9

diff --git a/0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch b/0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch
deleted file mode 100644
index c827e5a..0000000
--- a/0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 313c5a1dfb744aaef10586526dda89d2b4a50651 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= <marko.makela@mariadb.com>
-Date: Wed, 5 Jul 2023 12:37:05 +0300
-Subject: [PATCH 1/1] MDEV-31443 [FATAL] InnoDB: Unable to find
- charset-collation in ibuf_upgrade()
-
-dtype_new_read_for_order_and_null_size(): Correctly assign type->prtype.
-This caused the fatal error and crash.
-
-ibuf_merge(): Relax a too strict condition that would result in
-[ERROR] InnoDB: Unable to upgrade the change buffer
-when there exist buffered changes to redundant secondary indexes, such as
-PRIMARY KEY(x), INDEX(x).
-
-ibuf_upgrade(): Modify at most one user tablespace per mini-transaction,
-to be crash-safe.
-
-page_cur_insert_rec_zip(), page_cur_delete_rec(): Relax debug assertions
-for ibuf_upgrade().
-
-ibuf_log_rebuild_if_needed(): Invoke recv_sys.debug_free() only after
-srv_log_rebuild_if_needed() to avoid an assertion failure. This code
-is executed when the innodb_log_file_size is changed when upgrading
-from 10.x to 11.0.
-
-Tested by: Matthias Leich, Christian Hesse
----
- storage/innobase/ibuf/ibuf0ibuf.cc | 14 ++++++++++++--
- storage/innobase/page/page0cur.cc  |  5 +++--
- storage/innobase/srv/srv0start.cc  |  3 ++-
- 3 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/storage/innobase/ibuf/ibuf0ibuf.cc b/storage/innobase/ibuf/ibuf0ibuf.cc
-index 5303b592c71..a13af290d8d 100644
---- a/storage/innobase/ibuf/ibuf0ibuf.cc
-+++ b/storage/innobase/ibuf/ibuf0ibuf.cc
-@@ -156,7 +156,7 @@ dtype_new_read_for_order_and_null_size(
- 		<< 16;
- 
- 	if (dtype_is_string_type(type->mtype)) {
--		type->prtype |= charset_coll << 16;
-+		type->prtype |= charset_coll;
- 
- 		if (charset_coll == 0) {
- 			/* This insert buffer record was inserted before
-@@ -709,7 +709,7 @@ static dberr_t ibuf_merge(fil_space_t *space, btr_cur_t *cur, mtr_t *mtr)
-     rec_t *rec= cur->page_cur.rec;
-     ulint n_fields= rec_get_n_fields_old(rec);
- 
--    if (n_fields <= IBUF_REC_FIELD_USER + 1 || rec[4])
-+    if (n_fields < IBUF_REC_FIELD_USER + 1 || rec[4])
-       return DB_CORRUPTION;
- 
-     n_fields-= IBUF_REC_FIELD_USER;
-@@ -910,7 +910,17 @@ ATTRIBUTE_COLD dberr_t ibuf_upgrade()
-         prev_space_id= space_id;
-         space= fil_space_t::get(space_id);
-         if (space)
-+        {
-+          /* Move to the next user tablespace. We buffer-fix the current
-+          change buffer leaf page to prevent it from being evicted
-+          before we have started a new mini-transaction. */
-+          cur.page_cur.block->fix();
-+          mtr.commit();
-+          log_free_check();
-+          mtr.start();
-+          mtr.page_lock(cur.page_cur.block, RW_X_LATCH);
-           mtr.set_named_space(space);
-+        }
-         spaces++;
-       }
-       pages++;
-diff --git a/storage/innobase/page/page0cur.cc b/storage/innobase/page/page0cur.cc
-index 8d3a44d630d..2562ae1d0e4 100644
---- a/storage/innobase/page/page0cur.cc
-+++ b/storage/innobase/page/page0cur.cc
-@@ -1791,7 +1791,8 @@ page_cur_insert_rec_zip(
-   ut_ad(rec_offs_comp(offsets));
-   ut_ad(fil_page_get_type(page) == FIL_PAGE_INDEX ||
-         fil_page_get_type(page) == FIL_PAGE_RTREE);
--  ut_ad(mach_read_from_8(PAGE_HEADER + PAGE_INDEX_ID + page) == index->id);
-+  ut_ad(mach_read_from_8(PAGE_HEADER + PAGE_INDEX_ID + page) == index->id ||
-+        index->is_dummy);
-   ut_ad(!page_get_instant(page));
-   ut_ad(!page_cur_is_after_last(cursor));
- #ifdef UNIV_ZIP_DEBUG
-@@ -2258,7 +2259,7 @@ page_cur_delete_rec(
- 	      == index->table->not_redundant());
- 	ut_ad(fil_page_index_page_check(block->page.frame));
- 	ut_ad(mach_read_from_8(PAGE_HEADER + PAGE_INDEX_ID + block->page.frame)
--	      == index->id);
-+	      == index->id || index->is_dummy);
- 	ut_ad(mtr->is_named_space(index->table->space));
- 
- 	/* The record must not be the supremum or infimum record. */
-diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc
-index 33545f42d05..9e1efa3c85d 100644
---- a/storage/innobase/srv/srv0start.cc
-+++ b/storage/innobase/srv/srv0start.cc
-@@ -1165,8 +1165,9 @@ ATTRIBUTE_COLD static dberr_t ibuf_log_rebuild_if_needed()
-   if (recv_sys.is_corrupt_log() || recv_sys.is_corrupt_fs())
-     return DB_CORRUPTION;
- 
-+  dberr_t err= srv_log_rebuild_if_needed();
-   recv_sys.debug_free();
--  return srv_log_rebuild_if_needed();
-+  return err;
- }
- 
- static tpool::task_group rollback_all_recovered_group(1);
--- 
-2.41.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 6a8289f..aff0ee8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
 pkgbase=mariadb
 pkgname=('mariadb-libs' 'mariadb-clients' 'mariadb' 'mytop')
 pkgdesc='Fast SQL database server, derived from MySQL'
-pkgver=11.0.2
-pkgrel=2
+pkgver=11.0.3
+pkgrel=1
 arch=('x86_64')
 license=('GPL')
 url='https://mariadb.org/'
@@ -17,11 +17,9 @@ validpgpkeys=('177F4010FE56CA3336300305F1656F24C74CD1D8') # MariaDB Signing Key
 # rsync source via https and hope it does not hurt them too much.
 # https://mariadb.com/kb/en/library/mirror-sites-for-mariadb/
 source=("https://rsync.osuosl.org/pub/mariadb/mariadb-${pkgver}/source/mariadb-${pkgver}.tar.gz"{,.asc}
-        '0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch'
         '0001-arch-specific.patch')
-sha256sums=('3c71576cad0ea416882270e383f94cc89693b7fbcce1fa4f306fe3e931e464ae'
+sha256sums=('529f08a064ee7733a136ec474a4239e8ac9bd6db139b8ba70bff8a7f1303839a'
             'SKIP'
-            'e4ea86c72fe0258e442cc8a2dc6cf040696535e22d70be4cb63007130e39d222'
             '3289efb3452d199aec872115f35da3f1d6fd4ce774615076690e9bc8afae1460')
 
 prepare() {
@@ -32,10 +30,6 @@ prepare() {
   #  * force preloading jemalloc for memory management
   #  * make systemd-tmpfiles create MYSQL_DATADIR
   patch -Np1 < ../0001-arch-specific.patch
-
-  # MDEV-31443 assert [FATAL] InnoDB: Unable to find charset-collation for 254 after upgrade from 10.11.4 to 11.0
-  # https://jira.mariadb.org/browse/MDEV-31443
-  patch -Np1 < ../0002-MDEV-31443-FATAL-InnoDB-Unable-to-find-charset-colla.patch
 }
 
 build() {