From ff291e4e48888a88d31aabf9c738bd2e7b2f0f98 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Mon, 17 Feb 2020 11:24:02 +0100 Subject: [PATCH] - up to 5.7.29.32 --- bug-92387.patch | 121 -------------------------------------------- build.patch | 11 ++++ percona-server.spec | 10 ++-- 3 files changed, 15 insertions(+), 127 deletions(-) delete mode 100644 bug-92387.patch diff --git a/bug-92387.patch b/bug-92387.patch deleted file mode 100644 index 63b3eb1..0000000 --- a/bug-92387.patch +++ /dev/null @@ -1,121 +0,0 @@ -commit 95e3a1a52dbe8fc21eb0410540853db531254a24 -Author: Nisha Gopalakrishnan -Date: Wed Oct 9 07:03:55 2019 +0530 - - BUG#29836204: P_S TABLE ACCESS HANGS WHILE IN LOCK TABLES MODE - - Analysis - ======== - - Querying the performance_schema tables like "session variables" - under LOCK TABLE MODE while there is a meta data change for the - table locked caused the performance_schema query to hang in - "opening_tables" state. - - While opening the performance_schema internal temporary table - in "open_table", the table share version was compared with the - share version of the opened tables(i.e in this case the table - which was altered using ALTER TABLE under lock table mode)/ - Since the share version was different, the retry logic for - opening tables was triggered. This continued in a loop since - the table share version was always different. - - Fix - === - While opening performance_schema tables, the flag - 'MYSQL_OPEN_IGNORE_FLUSH' is set since FLUSH TABLES/share - version comparison does not apply for performance_schema tables. - Querying the P_S tables should be allowed in lock table mode. - - Change-Id: I4ac73dbfb9e67076a6297fcaa184c3d2606ffd40 - -diff --git a/mysql-test/r/lock.result b/mysql-test/r/lock.result -index b9d5b025f0e..0712289c8e6 100644 ---- a/mysql-test/r/lock.result -+++ b/mysql-test/r/lock.result -@@ -471,3 +471,28 @@ DROP TABLE m1, t1; - # - # End of 6.0 tests. - # -+# -+# Bug#29836204: P_S TABLE ACCESS HANGS WHILE IN LOCK TABLES MODE -+# -+SET @saved_show_compatibility_56= @@global.show_compatibility_56; -+# Ensures that the P_S is used for the SHOW command. -+SET GLOBAL show_compatibility_56= OFF; -+CREATE TABLE t1(fld1 int) ENGINE=MYISAM; -+LOCK TABLE t1 WRITE; -+ALTER TABLE t1 DISABLE KEYS; -+# Without patch, the SHOW command hangs. -+SHOW SESSION VARIABLES LIKE 'FOREIGN_KEY_CHECKS'; -+Variable_name Value -+foreign_key_checks ON -+# Wihout patch, the SELECT from P_S hangs. -+SELECT * FROM performance_schema.global_variables WHERE variable_name="read_only"; -+VARIABLE_NAME VARIABLE_VALUE -+read_only OFF -+# Test added for coverage (Querying from I_S) -+SET GLOBAL show_compatibility_56= @saved_show_compatibility_56; -+SHOW SESSION VARIABLES LIKE 'FOREIGN_KEY_CHECKS'; -+Variable_name Value -+foreign_key_checks ON -+# Clean up. -+UNLOCK TABLES; -+DROP TABLE t1; -diff --git a/mysql-test/t/lock.test b/mysql-test/t/lock.test -index 2fd69a23fac..4a8ecf141e2 100644 ---- a/mysql-test/t/lock.test -+++ b/mysql-test/t/lock.test -@@ -583,6 +583,33 @@ DROP TABLE m1, t1; - --echo # End of 6.0 tests. - --echo # - -+ -+--echo # -+--echo # Bug#29836204: P_S TABLE ACCESS HANGS WHILE IN LOCK TABLES MODE -+--echo # -+ -+SET @saved_show_compatibility_56= @@global.show_compatibility_56; -+--echo # Ensures that the P_S is used for the SHOW command. -+SET GLOBAL show_compatibility_56= OFF; -+CREATE TABLE t1(fld1 int) ENGINE=MYISAM; -+LOCK TABLE t1 WRITE; -+ALTER TABLE t1 DISABLE KEYS; -+ -+--echo # Without patch, the SHOW command hangs. -+SHOW SESSION VARIABLES LIKE 'FOREIGN_KEY_CHECKS'; -+ -+--echo # Wihout patch, the SELECT from P_S hangs. -+SELECT * FROM performance_schema.global_variables WHERE variable_name="read_only"; -+ -+--echo # Test added for coverage (Querying from I_S) -+SET GLOBAL show_compatibility_56= @saved_show_compatibility_56; -+SHOW SESSION VARIABLES LIKE 'FOREIGN_KEY_CHECKS'; -+ -+--echo # Clean up. -+UNLOCK TABLES; -+DROP TABLE t1; -+ -+ - # Check that all connections opened by test cases in this file are really - # gone so execution of other tests won't be affected by their presence. - --source include/wait_until_count_sessions.inc -diff --git a/sql/sql_base.cc b/sql/sql_base.cc -index 567920cfb61..d23772910d2 100644 ---- a/sql/sql_base.cc -+++ b/sql/sql_base.cc -@@ -3051,6 +3051,14 @@ bool open_table(THD *thd, TABLE_LIST *table_list, Open_table_context *ot_ctx) - DBUG_RETURN(true); - } - -+ /* -+ P_S table access should be allowed while in LTM, the ignore flush flag is -+ set to avoid the infinite reopening of the table due to version number -+ mismatch. -+ */ -+ if (BELONGS_TO_P_S_UNDER_LTM(thd, table_list)) -+ flags|= MYSQL_OPEN_IGNORE_FLUSH; -+ - key_length= get_table_def_key(table_list, &key); - - /* diff --git a/build.patch b/build.patch index 890a068..2a99f7c 100644 --- a/build.patch +++ b/build.patch @@ -10,3 +10,14 @@ #if defined(HAVE_PTHREAD_NP_H) # include #endif +--- percona-server-5.7.29-32/storage/rocksdb/CMakeLists.txt~ 2020-01-20 15:25:37.000000000 +0100 ++++ percona-server-5.7.29-32/storage/rocksdb/CMakeLists.txt 2020-02-17 10:50:15.600870732 +0100 +@@ -124,7 +124,7 @@ ENDIF() + # get a list of rocksdb library source files + # run with env -i to avoid passing variables + EXECUTE_PROCESS( +- COMMAND env -i ${CMAKE_CURRENT_SOURCE_DIR}/get_rocksdb_files.sh ++ COMMAND env -i PATH=$ENV{PATH} ${CMAKE_CURRENT_SOURCE_DIR}/get_rocksdb_files.sh + OUTPUT_VARIABLE SCRIPT_OUTPUT + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) diff --git a/percona-server.spec b/percona-server.spec index b60dc81..02e76ca 100644 --- a/percona-server.spec +++ b/percona-server.spec @@ -43,8 +43,8 @@ %undefine with_tokudb %endif -%define rel 2 -%define percona_rel 31 +%define rel 1 +%define percona_rel 32 Summary: Percona Server: a very fast and reliable SQL database engine Summary(de.UTF-8): Percona Server: ist eine SQL-Datenbank Summary(fr.UTF-8): Percona Server: un serveur SQL rapide et fiable @@ -54,12 +54,12 @@ Summary(ru.UTF-8): Percona Server - быстрый SQL-сервер Summary(uk.UTF-8): Percona Server - швидкий SQL-сервер Summary(zh_CN.UTF-8): Percona Server数据库服务器 Name: percona-server -Version: 5.7.28 +Version: 5.7.29 Release: %{percona_rel}.%{rel} License: GPL + Percona Server FLOSS Exception Group: Applications/Databases Source0: https://www.percona.com/downloads/Percona-Server-5.7/LATEST/source/tarball/%{name}-%{version}-%{percona_rel}.tar.gz -# Source0-md5: 0e10c019af943dece4ef7d98cdb36010 +# Source0-md5: 94d1ed60a6ca2cd47e8f86c067dcca50 Source100: http://www.sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz # Source100-md5: 5cac34f3d78a9d612ca4301abfcbd666 %if %{without system_boost} @@ -83,7 +83,6 @@ Patch0: mysql-opt.patch Patch1: mysql-versioning.patch Patch2: mysql-protobuf.patch Patch3: build.patch -Patch4: bug-92387.patch Patch11: mysql-upgrade.patch Patch12: mysql-config.patch @@ -508,7 +507,6 @@ cd ../.. %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p1 %patch19 -p1 %patch20 -p1 -- 2.44.0