From b284a3168fa91a038925d2ecf5e4791011ea5e7d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 18 Nov 2019 10:15:03 +0000 Subject: gentoo resync : 18.11.2019 --- .../files/MDEV-20247-replication-10.2.patch | 108 ------------------ dev-db/mariadb/files/MDEV-20247-replication.patch | 121 --------------------- dev-db/mariadb/files/my.cnf-5.5 | 18 +-- 3 files changed, 9 insertions(+), 238 deletions(-) delete mode 100644 dev-db/mariadb/files/MDEV-20247-replication-10.2.patch delete mode 100644 dev-db/mariadb/files/MDEV-20247-replication.patch (limited to 'dev-db/mariadb/files') diff --git a/dev-db/mariadb/files/MDEV-20247-replication-10.2.patch b/dev-db/mariadb/files/MDEV-20247-replication-10.2.patch deleted file mode 100644 index 193f2dd77509..000000000000 --- a/dev-db/mariadb/files/MDEV-20247-replication-10.2.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 47f8a18fec604983e47fdf7c822d94b26d85cade Mon Sep 17 00:00:00 2001 -From: Thirunarayanan Balathandayuthapani -Date: Wed, 7 Aug 2019 12:35:04 +0530 -Subject: [PATCH] MDEV-20247 Replication hangs with "preparing" and never - starts - -- The commit ab6dd774082c57f48d998e03655c06b672799b2d wrongly sets the -condition inside innobase_srv_conc_enter_innodb(). Problem is that -InnoDB makes the thread to sleep indefinitely if it is a replication -slave thread. - -Thanks to Sujatha Sivakumar for contributing the replication test case. ---- - .../r/rpl_sync_with_innodb_thd_conc.result | 13 ++++++ - .../rpl/t/rpl_sync_with_innodb_thd_conc.test | 41 +++++++++++++++++++ - storage/innobase/handler/ha_innodb.cc | 6 +-- - 4 files changed, 60 insertions(+), 6 deletions(-) - create mode 100644 mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result - create mode 100644 mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test - -diff --git a/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result b/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result -new file mode 100644 -index 000000000000..0ed894336a1c ---- /dev/null -+++ b/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result -@@ -0,0 +1,18 @@ -+include/master-slave.inc -+[connection master] -+connection slave; -+SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; -+SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; -+SET GLOBAL innodb_thread_concurrency = 100; -+connection master; -+CREATE TABLE t(f INT) ENGINE=INNODB; -+INSERT INTO t VALUES (10); -+connection slave; -+include/diff_tables.inc [master:t, slave:t] -+"===== Clean up=======" -+connection master; -+DROP TABLE t; -+connection slave; -+SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; -+SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; -+include/rpl_end.inc -diff --git a/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test b/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test -new file mode 100644 -index 000000000000..b4c2971d2fbc ---- /dev/null -+++ b/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test -@@ -0,0 +1,41 @@ -+# ==== Purpose ==== -+# -+# Test verifies that replication shouldn't hang when number of active threads -+# on the slave server are less than the allowed innodb_thread_concurrency value. -+# -+# ==== Implementation ==== -+# -+# Steps: -+# 0 - Have master slave replication setup with engine being Innodb. -+# 1 - Configure innodb_thread_concurrency = 100. -+# 2 - Do some DML on master and sync the slave with master. -+# 3 - Ensure replication doesn't hang. -+# -+# ==== References ==== -+# -+# MDEV-20247: Replication hangs with "preparing" and never starts -+# -+ -+--source include/master-slave.inc -+--source include/have_innodb.inc -+ -+--connection slave -+SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; -+SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; -+SET GLOBAL innodb_thread_concurrency = 100; -+ -+--connection master -+CREATE TABLE t(f INT) ENGINE=INNODB; -+INSERT INTO t VALUES (10); -+--sync_slave_with_master -+ -+--let $diff_tables=master:t, slave:t -+--source include/diff_tables.inc -+ -+--echo "===== Clean up=======" -+--connection master -+DROP TABLE t; -+--sync_slave_with_master -+SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; -+SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; -+--source include/rpl_end.inc -diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc -index 081fcbd9c51e..5dfe240631b8 100644 ---- a/storage/innobase/handler/ha_innodb.cc -+++ b/storage/innobase/handler/ha_innodb.cc -@@ -1686,9 +1686,9 @@ innobase_srv_conc_enter_innodb( - && thd_is_replication_slave_thread(trx->mysql_thd)) { - const ulonglong end = my_interval_timer() - + ulonglong(srv_replication_delay) * 1000000; -- while (srv_conc_get_active_threads() -- >= srv_thread_concurrency -- || my_interval_timer() >= end) { -+ while ((srv_conc_get_active_threads() -+ >= srv_thread_concurrency) -+ && my_interval_timer() < end) { - os_thread_sleep(2000 /* 2 ms */); - } - } else { diff --git a/dev-db/mariadb/files/MDEV-20247-replication.patch b/dev-db/mariadb/files/MDEV-20247-replication.patch deleted file mode 100644 index 92f8e0e1a67d..000000000000 --- a/dev-db/mariadb/files/MDEV-20247-replication.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 47f8a18fec604983e47fdf7c822d94b26d85cade Mon Sep 17 00:00:00 2001 -From: Thirunarayanan Balathandayuthapani -Date: Wed, 7 Aug 2019 12:35:04 +0530 -Subject: [PATCH] MDEV-20247 Replication hangs with "preparing" and never - starts - -- The commit ab6dd774082c57f48d998e03655c06b672799b2d wrongly sets the -condition inside innobase_srv_conc_enter_innodb(). Problem is that -InnoDB makes the thread to sleep indefinitely if it is a replication -slave thread. - -Thanks to Sujatha Sivakumar for contributing the replication test case. ---- - .../r/rpl_sync_with_innodb_thd_conc.result | 13 ++++++ - .../rpl/t/rpl_sync_with_innodb_thd_conc.test | 41 +++++++++++++++++++ - storage/innobase/handler/ha_innodb.cc | 6 +-- - storage/xtradb/handler/ha_innodb.cc | 6 +-- - 4 files changed, 60 insertions(+), 6 deletions(-) - create mode 100644 mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result - create mode 100644 mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test - -diff --git a/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result b/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result -new file mode 100644 -index 000000000000..0ed894336a1c ---- /dev/null -+++ b/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result -@@ -0,0 +1,13 @@ -+include/master-slave.inc -+[connection master] -+SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; -+SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; -+SET GLOBAL innodb_thread_concurrency = 100; -+CREATE TABLE t(f INT) ENGINE=INNODB; -+INSERT INTO t VALUES (10); -+include/diff_tables.inc [master:t, slave:t] -+"===== Clean up=======" -+DROP TABLE t; -+SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; -+SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; -+include/rpl_end.inc -diff --git a/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test b/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test -new file mode 100644 -index 000000000000..b4c2971d2fbc ---- /dev/null -+++ b/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test -@@ -0,0 +1,41 @@ -+# ==== Purpose ==== -+# -+# Test verifies that replication shouldn't hang when number of active threads -+# on the slave server are less than the allowed innodb_thread_concurrency value. -+# -+# ==== Implementation ==== -+# -+# Steps: -+# 0 - Have master slave replication setup with engine being Innodb. -+# 1 - Configure innodb_thread_concurrency = 100. -+# 2 - Do some DML on master and sync the slave with master. -+# 3 - Ensure replication doesn't hang. -+# -+# ==== References ==== -+# -+# MDEV-20247: Replication hangs with "preparing" and never starts -+# -+ -+--source include/master-slave.inc -+--source include/have_innodb.inc -+ -+--connection slave -+SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; -+SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; -+SET GLOBAL innodb_thread_concurrency = 100; -+ -+--connection master -+CREATE TABLE t(f INT) ENGINE=INNODB; -+INSERT INTO t VALUES (10); -+--sync_slave_with_master -+ -+--let $diff_tables=master:t, slave:t -+--source include/diff_tables.inc -+ -+--echo "===== Clean up=======" -+--connection master -+DROP TABLE t; -+--sync_slave_with_master -+SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; -+SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; -+--source include/rpl_end.inc -diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc -index 081fcbd9c51e..5dfe240631b8 100644 ---- a/storage/innobase/handler/ha_innodb.cc -+++ b/storage/innobase/handler/ha_innodb.cc -@@ -1686,9 +1686,9 @@ innobase_srv_conc_enter_innodb( - && thd_is_replication_slave_thread(trx->mysql_thd)) { - const ulonglong end = my_interval_timer() - + ulonglong(srv_replication_delay) * 1000000; -- while (srv_conc_get_active_threads() -- >= srv_thread_concurrency -- || my_interval_timer() >= end) { -+ while ((srv_conc_get_active_threads() -+ >= srv_thread_concurrency) -+ && my_interval_timer() < end) { - os_thread_sleep(2000 /* 2 ms */); - } - } else { -diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc -index 5e7482ff6bfa..b5002187e3b2 100644 ---- a/storage/xtradb/handler/ha_innodb.cc -+++ b/storage/xtradb/handler/ha_innodb.cc -@@ -1949,9 +1949,9 @@ innobase_srv_conc_enter_innodb( - && thd_is_replication_slave_thread(trx->mysql_thd)) { - const ulonglong end = my_interval_timer() - + ulonglong(srv_replication_delay) * 1000000; -- while (srv_conc_get_active_threads() -- >= srv_thread_concurrency -- || my_interval_timer() >= end) { -+ while ((srv_conc_get_active_threads() -+ >= srv_thread_concurrency) -+ && my_interval_timer() < end) { - os_thread_sleep(2000 /* 2 ms */); - } - } else { diff --git a/dev-db/mariadb/files/my.cnf-5.5 b/dev-db/mariadb/files/my.cnf-5.5 index dec0c4cb8ee3..289af8a24d0d 100644 --- a/dev-db/mariadb/files/my.cnf-5.5 +++ b/dev-db/mariadb/files/my.cnf-5.5 @@ -7,34 +7,34 @@ port = 3306 socket = @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock [mysql] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [mysqladmin] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [mysqlcheck] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [mysqldump] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [mysqlimport] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [mysqlshow] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets default-character-set=utf8 [myisamchk] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets [myisampack] -character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets +character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/charsets # use [safe_mysqld] with mysql-3 [mysqld_safe] @@ -59,7 +59,7 @@ net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M -lc_messages_dir = @GENTOO_PORTAGE_EPREFIX@/usr/share/mysql +lc_messages_dir = @GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb #Set this to your desired error message language lc_messages = en_US -- cgit v1.2.3