diff -Nru percona-xtradb-cluster-5.6-5.6.21-25.8/debian/changelog percona-xtradb-cluster-5.6-5.6.21-25.8/debian/changelog --- percona-xtradb-cluster-5.6-5.6.21-25.8/debian/changelog 2016-04-26 12:13:59.000000000 +0000 +++ percona-xtradb-cluster-5.6-5.6.21-25.8/debian/changelog 2016-07-17 01:03:33.000000000 +0000 @@ -1,3 +1,10 @@ +percona-xtradb-cluster-5.6 (5.6.21-25.8-0ubuntu5) yakkety; urgency=medium + + * d/p/fix_tc_log_initlization_on_ppc64.patch: Fix log-tc-size for bigger + page sizes (LP: #1570678) + + -- Rafael David Tinoco Sun, 17 Jul 2016 01:03:19 +0000 + percona-xtradb-cluster-5.6 (5.6.21-25.8-0ubuntu4) yakkety; urgency=medium * No change rebuild to fix miscompilation on s390x. LP: #1572613 diff -Nru percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/fix_tc_log_initialization_on_ppc64.patch percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/fix_tc_log_initialization_on_ppc64.patch --- percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/fix_tc_log_initialization_on_ppc64.patch 1970-01-01 00:00:00.000000000 +0000 +++ percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/fix_tc_log_initialization_on_ppc64.patch 2016-07-17 01:01:41.000000000 +0000 @@ -0,0 +1,107 @@ +Description: Fix tc-log initialization on ppc64. + +log-tc-size is 24K by default. Page size is 64K on PPC64. +But log-tc-size must be at least 3 x page size. This is +enforced by TC_LOG_MMAP::open() with a comment: to guarantee +non-empty pool. + +This all makes server not startable in default configuration +on PPC64. + +Autosize log-tc-size, so that it's min value= page size * 3, +default value= page size * 6, block size= page size. + +Author: Sergey Vojtovich +Origin: upstream (mariadb), commit: 6f9e33e +Bug: https://jira.mariadb.org/browse/MDEV-7273 +Bug-Ubuntu: https://launchpad.net/bugs/1570678 +Reviewed-By: Rafael David Tinoco +Last-Update: 2016-07-16 + +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/mysql-test/include/mysqld--help.inc ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/mysql-test/include/mysqld--help.inc +@@ -19,7 +19,7 @@ perl; + @skipvars=qw/basedir open-files-limit general-log-file plugin-dir + pid-file slow-query-log-file + datadir slave-load-tmpdir tmpdir socket table-definition-cache +- performance-schema-max-statement-classes table-open-cache/; ++ performance-schema-max-statement-classes log-tc-size table-open-cache/; + + # Plugins which may or may not be there: + @plugins=qw/innodb ndb ndbinfo archive blackhole federated partition ndbcluster debug temp-pool ssl des-key-file +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/mysql-test/r/mysqld--help-notwin.result ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/mysql-test/r/mysqld--help-notwin.result +@@ -1306,7 +1306,6 @@ log-slow-slave-statements FALSE + log-slow-sp-statements TRUE + log-slow-verbosity + log-tc tc.log +-log-tc-size 24576 + log-throttle-queries-not-using-indexes 0 + log-warnings 1 + log-warnings-suppress +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/sql/log.cc ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/sql/log.cc +@@ -2734,7 +2734,7 @@ ulong tc_log_page_waits= 0; + + static const char tc_log_magic[]={(char) 254, 0x23, 0x05, 0x74}; + +-ulong opt_tc_log_size= TC_LOG_MIN_SIZE; ++ulong opt_tc_log_size; + ulong tc_log_max_pages_used=0, tc_log_page_size=0, tc_log_cur_pages_used=0; + + int TC_LOG_MMAP::open(const char *opt_name) +@@ -2747,10 +2747,6 @@ int TC_LOG_MMAP::open(const char *opt_na + DBUG_ASSERT(opt_name && opt_name[0]); + + tc_log_page_size= my_getpagesize(); +- if (TC_LOG_PAGE_SIZE > tc_log_page_size) +- { +- DBUG_ASSERT(TC_LOG_PAGE_SIZE % tc_log_page_size == 0); +- } + + fn_format(logname,opt_name,mysql_data_home,"",MY_UNPACK_FILENAME); + if ((fd= mysql_file_open(key_file_tclog, logname, O_RDWR, MYF(0))) < 0) +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/sql/mysqld.cc ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/sql/mysqld.cc +@@ -8069,12 +8069,6 @@ struct my_option my_long_options[]= + "more than one storage engine, when binary log is disabled).", + &opt_tc_log_file, &opt_tc_log_file, 0, GET_STR, + REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +-#ifdef HAVE_MMAP +- {"log-tc-size", 0, "Size of transaction coordinator log.", +- &opt_tc_log_size, &opt_tc_log_size, 0, GET_ULONG, +- REQUIRED_ARG, TC_LOG_MIN_SIZE, TC_LOG_MIN_SIZE, ULONG_MAX, 0, +- TC_LOG_PAGE_SIZE, 0}, +-#endif + {"master-info-file", 0, + "The location and name of the file that remembers the master and where " + "the I/O replication thread is in the master's binlogs.", +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/sql/sql_class.h ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/sql/sql_class.h +@@ -229,7 +229,6 @@ public: + + + #define TC_LOG_PAGE_SIZE 8192 +-#define TC_LOG_MIN_SIZE (3*TC_LOG_PAGE_SIZE) + + #define TC_HEURISTIC_RECOVER_COMMIT 1 + #define TC_HEURISTIC_RECOVER_ROLLBACK 2 +--- percona-xtradb-cluster-5.6-5.6.21-25.8.orig/sql/sys_vars.cc ++++ percona-xtradb-cluster-5.6-5.6.21-25.8/sql/sys_vars.cc +@@ -5097,6 +5097,16 @@ static Sys_var_mybool Sys_pseudo_slave_m + SESSION_ONLY(pseudo_slave_mode), NO_CMD_LINE, DEFAULT(FALSE), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_pseudo_slave_mode)); + ++#ifdef HAVE_MMAP ++static Sys_var_ulong Sys_log_tc_size( ++ "log_tc_size", ++ "Size of transaction coordinator log.", ++ READ_ONLY GLOBAL_VAR(opt_tc_log_size), ++ CMD_LINE(REQUIRED_ARG), ++ VALID_RANGE(my_getpagesize() * 3, ULONG_MAX), ++ DEFAULT(my_getpagesize() * 6), ++ BLOCK_SIZE(my_getpagesize())); ++#endif + + #ifdef HAVE_REPLICATION + static bool check_gtid_next(sys_var *self, THD *thd, set_var *var) diff -Nru percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/series percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/series --- percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/series 2015-02-16 18:06:36.000000000 +0000 +++ percona-xtradb-cluster-5.6-5.6.21-25.8/debian/patches/series 2016-07-17 01:01:41.000000000 +0000 @@ -1,2 +1,3 @@ scripts__mysqld_safe.sh__signals.patch fix_mtr_ssl_cert.patch +fix_tc_log_initialization_on_ppc64.patch