From 93562484333ed97049f915e0958f2728f4ff0d6d9561344170fb4cd750f01b27 Mon Sep 17 00:00:00 2001 From: Kristyna Streitova Date: Mon, 15 Mar 2021 22:23:34 +0000 Subject: [PATCH 1/2] Accepting request 879293 from home:kstreitova:branches:server:database - Update to 10.5.9 * release notes and changelog: https://mariadb.com/kb/en/library/mariadb-1059-release-notes https://mariadb.com/kb/en/library/mariadb-1059-changelog * fixes for the following security vulnerabilities: 10.5.9: none - Tracker bug: [bsc#1182739] - Update fixes [bsc#1182255] (MDL BF-BF Conflict caused by TRUNCATE TABLE) - refresh mariadb-10.2.19-link-and-enable-c++11-atomics.patch - remove fix-lock-rollback-assert-abort.patch (applied upstream) OBS-URL: https://build.opensuse.org/request/show/879293 OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=267 --- ...0.2.19-link-and-enable-c++11-atomics.patch | 26 +++++++++---------- mariadb-10.5.8.tar.gz | 3 --- mariadb-10.5.8.tar.gz.sig | 6 ----- mariadb-10.5.9.tar.gz | 3 +++ mariadb-10.5.9.tar.gz.sig | 6 +++++ mariadb.changes | 15 +++++++++++ mariadb.spec | 4 +-- 7 files changed, 38 insertions(+), 25 deletions(-) delete mode 100644 mariadb-10.5.8.tar.gz delete mode 100644 mariadb-10.5.8.tar.gz.sig create mode 100644 mariadb-10.5.9.tar.gz create mode 100644 mariadb-10.5.9.tar.gz.sig diff --git a/mariadb-10.2.19-link-and-enable-c++11-atomics.patch b/mariadb-10.2.19-link-and-enable-c++11-atomics.patch index 069a945..9a3dd98 100644 --- a/mariadb-10.2.19-link-and-enable-c++11-atomics.patch +++ b/mariadb-10.2.19-link-and-enable-c++11-atomics.patch @@ -7,11 +7,11 @@ Date: Fri Dec 21 19:14:04 2018 +0200 atomic operations. Check first if support is available without linking, otherwise use the library. -Index: mariadb-10.5.8/configure.cmake +Index: mariadb-10.5.9/configure.cmake =================================================================== ---- mariadb-10.5.8.orig/configure.cmake -+++ mariadb-10.5.8/configure.cmake -@@ -861,7 +861,25 @@ int main() +--- mariadb-10.5.9.orig/configure.cmake ++++ mariadb-10.5.9/configure.cmake +@@ -862,7 +862,25 @@ int main() long long int *ptr= &var; return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); }" @@ -38,11 +38,11 @@ Index: mariadb-10.5.8/configure.cmake IF(WITH_VALGRIND) SET(HAVE_valgrind 1) -Index: mariadb-10.5.8/mysys/CMakeLists.txt +Index: mariadb-10.5.9/mysys/CMakeLists.txt =================================================================== ---- mariadb-10.5.8.orig/mysys/CMakeLists.txt -+++ mariadb-10.5.8/mysys/CMakeLists.txt -@@ -140,6 +140,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings +--- mariadb-10.5.9.orig/mysys/CMakeLists.txt ++++ mariadb-10.5.9/mysys/CMakeLists.txt +@@ -154,6 +154,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO}) DTRACE_INSTRUMENT(mysys) @@ -53,11 +53,11 @@ Index: mariadb-10.5.8/mysys/CMakeLists.txt IF(HAVE_BFD_H) TARGET_LINK_LIBRARIES(mysys bfd) ENDIF(HAVE_BFD_H) -Index: mariadb-10.5.8/sql/CMakeLists.txt +Index: mariadb-10.5.9/sql/CMakeLists.txt =================================================================== ---- mariadb-10.5.8.orig/sql/CMakeLists.txt -+++ mariadb-10.5.8/sql/CMakeLists.txt -@@ -215,6 +215,10 @@ ELSE() +--- mariadb-10.5.9.orig/sql/CMakeLists.txt ++++ mariadb-10.5.9/sql/CMakeLists.txt +@@ -222,6 +222,10 @@ ELSE() SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL}) ENDIF() @@ -65,6 +65,6 @@ Index: mariadb-10.5.8/sql/CMakeLists.txt + TARGET_LINK_LIBRARIES(sql atomic) +ENDIF() + - IF(MSVC) + IF(MSVC OR CMAKE_SYSTEM_NAME MATCHES AIX) SET(libs_to_export_symbols sql mysys dbug strings) # Create shared library of already compiled object diff --git a/mariadb-10.5.8.tar.gz b/mariadb-10.5.8.tar.gz deleted file mode 100644 index b50f914..0000000 --- a/mariadb-10.5.8.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb4824f6f2c532cd3fc6a6bce7bf78ea7c6b949f8bdd07656b2c84344e757be8 -size 88206163 diff --git a/mariadb-10.5.8.tar.gz.sig b/mariadb-10.5.8.tar.gz.sig deleted file mode 100644 index ff34299..0000000 --- a/mariadb-10.5.8.tar.gz.sig +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iF0EABECAB0WIQQZk2nlQEvV/H0v5DvLywgqG7lD2wUCX6s7dQAKCRDLywgqG7lD -27aMAKCAdX+NC/VksUO9bk5zjiaPLVdZzwCfTrccWCS7uAGMk2fLbFMLb4DSQ20= -=hJl1 ------END PGP SIGNATURE----- diff --git a/mariadb-10.5.9.tar.gz b/mariadb-10.5.9.tar.gz new file mode 100644 index 0000000..b1c9bfe --- /dev/null +++ b/mariadb-10.5.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40ab19aeb8de141fdc188cf2251213c9e7351bee4d0cd29db704fae68d1068cf +size 88639930 diff --git a/mariadb-10.5.9.tar.gz.sig b/mariadb-10.5.9.tar.gz.sig new file mode 100644 index 0000000..ac210f5 --- /dev/null +++ b/mariadb-10.5.9.tar.gz.sig @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABECAB0WIQQZk2nlQEvV/H0v5DvLywgqG7lD2wUCYDAyFgAKCRDLywgqG7lD +2wrXAJ4vsH4IiLiLTiF4fwE0qcHZL4joLgCffboEebE3ibxCXu+9Zp03n+LHVpk= +=I2yi +-----END PGP SIGNATURE----- diff --git a/mariadb.changes b/mariadb.changes index bc441ae..e068678 100644 --- a/mariadb.changes +++ b/mariadb.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Fri Mar 12 22:07:53 UTC 2021 - Kristyna Streitova + +- Update to 10.5.9 + * release notes and changelog: + https://mariadb.com/kb/en/library/mariadb-1059-release-notes + https://mariadb.com/kb/en/library/mariadb-1059-changelog + * fixes for the following security vulnerabilities: + 10.5.9: none +- Tracker bug: [bsc#1182739] +- Update fixes [bsc#1182255] (MDL BF-BF Conflict caused by + TRUNCATE TABLE) +- refresh mariadb-10.2.19-link-and-enable-c++11-atomics.patch +- remove fix-lock-rollback-assert-abort.patch (applied upstream) + ------------------------------------------------------------------- Mon Feb 15 18:49:43 UTC 2021 - Kristyna Streitova diff --git a/mariadb.spec b/mariadb.spec index c41e6b7..c6c2a05 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -56,7 +56,7 @@ # Build with cracklib plugin when cracklib-dict-full >= 2.9.0 is available %define with_cracklib_plugin 0 Name: mariadb -Version: 10.5.8 +Version: 10.5.9 Release: 0 Summary: Server part of MariaDB License: SUSE-GPL-2.0-with-FLOSS-exception @@ -85,7 +85,6 @@ Patch4: mariadb-10.2.4-fortify-and-O.patch Patch5: mariadb-10.2.19-link-and-enable-c++11-atomics.patch Patch6: mariadb-10.4.12-harden_setuid.patch Patch7: mariadb-10.4.12-fix-install-db.patch -Patch8: fix-lock-rollback-assert-abort.patch # needed for bison SQL parser and wsrep API BuildRequires: bison BuildRequires: cmake @@ -374,7 +373,6 @@ find . -name "*.jar" -type f -exec rm --verbose -f {} \; %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 cp %{_sourcedir}/suse-test-run . From af31c21f07296886eec78d123ebf5ab5e21293fc573492f9c07740028df0f935 Mon Sep 17 00:00:00 2001 From: Kristyna Streitova Date: Tue, 16 Mar 2021 20:41:21 +0000 Subject: [PATCH 2/2] Accepting request 879496 from home:kstreitova:branches:server:database OBS-URL: https://build.opensuse.org/request/show/879496 OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=268 --- fix-lock-rollback-assert-abort.patch | 83 ---------------------------- 1 file changed, 83 deletions(-) delete mode 100644 fix-lock-rollback-assert-abort.patch diff --git a/fix-lock-rollback-assert-abort.patch b/fix-lock-rollback-assert-abort.patch deleted file mode 100644 index ac81022..0000000 --- a/fix-lock-rollback-assert-abort.patch +++ /dev/null @@ -1,83 +0,0 @@ -commit 8e3e87d2fc1e63d287f203d441dcb9360775c6b7 -Author: sjaakola -Date: Tue Dec 8 18:02:42 2020 +0200 - - MDEV-23851 MDEV-24229 BF-BF conflict issues - - Issues MDEV-23851 and MDEV-24229 are probably duplicates and are caused by the new self-asserting function lock0lock.cc:wsrep_assert_no_bf_bf_wait(). - The criteria for asserting is too strict and does not take in consideration scenarios of "false positive" lock conflicts, which are resolved by replaying the local transaction. - As a fix, this PR is relaxing the assert criteria by two conditions, which skip assert if high priority transactions are locking in correct order or if conflicting high priority lock holder is aborting and has just not yet released the lock. - - Alternative fix would be to remove wsrep_assert_no_bf_bf_wait() altogether, or remove the assert in this function and let it only print warnings in error log. - But in my high conflict rate multi-master test scenario, this relaxed asserting appears to be safe. - - This PR also removes two wsrep_report_bf_lock_wait() calls in innodb lock manager, which cause mutex access assert in debug builds. - - Foreign key appending missed handling of data types of float and double in INSERT execution. This is not directly related to the actual issue here but is fixed in this PR nevertheless. Missing these foreign keys values in certification could cause problems in some multi-master load scenarios. - - Finally, some problem reports suggest that some of the issues reported in MDEV-23851 might relate to false positive lock conflicts over unique secondary index gaps. There is separate work for relaxing UK index gap locking of replication appliers, and separate PR will be submitted for it, with a related mtr test as well. - -Index: mariadb-10.5.8/storage/innobase/lock/lock0lock.cc -=================================================================== ---- mariadb-10.5.8.orig/storage/innobase/lock/lock0lock.cc -+++ mariadb-10.5.8/storage/innobase/lock/lock0lock.cc -@@ -627,6 +627,20 @@ static void wsrep_assert_no_bf_bf_wait( - if (UNIV_LIKELY(!wsrep_thd_is_BF(lock_rec2->trx->mysql_thd, FALSE))) - return; - -+ /* if BF - BF order is honored, we can keep trx1 waiting for the lock */ -+ if (wsrep_thd_order_before(trx1->mysql_thd, lock_rec2->trx->mysql_thd)) -+ return; -+ -+ /* avoiding BF-BF conflict assert, if victim is already aborting -+ or rolling back for replaying -+ */ -+ wsrep_thd_LOCK(lock_rec2->trx->mysql_thd); -+ if (wsrep_thd_is_aborting(lock_rec2->trx->mysql_thd)) { -+ wsrep_thd_UNLOCK(lock_rec2->trx->mysql_thd); -+ return; -+ } -+ wsrep_thd_UNLOCK(lock_rec2->trx->mysql_thd); -+ - mtr_t mtr; - - if (lock_rec1) { -@@ -1385,11 +1399,6 @@ lock_rec_create_low( - - trx_mutex_exit(c_lock->trx); - -- if (UNIV_UNLIKELY(wsrep_debug)) { -- wsrep_report_bf_lock_wait(trx->mysql_thd, trx->id); -- wsrep_report_bf_lock_wait(c_lock->trx->mysql_thd, c_lock->trx->id); -- } -- - /* have to bail out here to avoid lock_set_lock... */ - return(lock); - } -Index: mariadb-10.5.8/storage/innobase/rem/rem0rec.cc -=================================================================== ---- mariadb-10.5.8.orig/storage/innobase/rem/rem0rec.cc -+++ mariadb-10.5.8/storage/innobase/rem/rem0rec.cc -@@ -2735,8 +2735,22 @@ wsrep_rec_get_foreign_key( - break; - case DATA_BLOB: - case DATA_BINARY: -+ case DATA_FIXBINARY: -+ case DATA_GEOMETRY: - memcpy(buf, data, len); - break; -+ case DATA_FLOAT: -+ { -+ float f = mach_float_read(data); -+ memcpy(buf, &f, sizeof(float)); -+ } -+ break; -+ case DATA_DOUBLE: -+ { -+ double d = mach_double_read(data); -+ memcpy(buf, &d, sizeof(double)); -+ } -+ break; - default: - break; - }