Commit ab494746 authored by Nirbhay Choubey's avatar Nirbhay Choubey

Merging changes from maria-5.5-galera and

some test fixes.

bzr merge -r3479..3493 maria-5.5-galera
parent 0bf3ed12
......@@ -1097,9 +1097,11 @@ sql/share/slovak
sql/share/spanish
sql/share/swedish
sql/share/ukrainian
scripts/wsrep_sst_common
scripts/wsrep_sst_mysqldump
scripts/wsrep_sst_rsync
scripts/wsrep_sst_xtrabackup
scripts/wsrep_sst_xtrabackup-v2
CPackConfig.cmake
CPackSourceConfig.cmake
Docs/INFO_BIN
......
......@@ -23,8 +23,7 @@ SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "shared")
SET(CPACK_COMPONENT_COMMON_GROUP "common")
SET(CPACK_COMPONENT_COMPAT_GROUP "compat")
SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts
SupportFiles Readme)
SupportFiles Readme Test)
SET(CPACK_RPM_PACKAGE_NAME "MariaDB-Galera")
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${VERSION}-${RPM}-${CMAKE_SYSTEM_PROCESSOR}")
......@@ -147,6 +146,8 @@ SETA(CPACK_RPM_test_PACKAGE_OBSOLETES
"MySQL-OurDelta-test")
SETA(CPACK_RPM_test_PACKAGE_PROVIDES
"MySQL-test")
SET(CPACK_RPM_test_PACKAGE_CONFLICTS
"MariaDB-test")
SETA(CPACK_RPM_server_PACKAGE_REQUIRES
${CPACK_RPM_PACKAGE_REQUIRES}
......
......@@ -23,7 +23,7 @@ SET(WSREP_PATCH_VERSION "10")
# MariaDB addition: Revision number of the last revision merged from
# codership branch visible in @@visible_comment.
# Branch : codership-mysql/5.5
SET(WSREP_PATCH_REVNO "3968") # Should be updated on every merge.
SET(WSREP_PATCH_REVNO "3991") # Should be updated on every merge.
# MariaDB: Obtain patch revision number:
# Update WSREP_PATCH_REVNO if WSREP_REV environment variable is set.
......
......@@ -4,15 +4,36 @@ Priority: optional
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net>
Uploaders: MariaDB Developers <maria-developers@lists.launchpad.net>
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper, file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), ${LIBREADLINE_DEV}, libssl-dev, libpam0g-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, texlive-latex-base, ghostscript | gs-gpl, dpatch, gawk, bison, lsb-release, hardening-wrapper, ${CMAKE_DEP}libaio-dev
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper, file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), ${LIBREADLINE_DEV}, libssl-dev, libpam0g-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, texlive-latex-base, ghostscript | gs-gpl, dpatch, gawk, bison, lsb-release, hardening-wrapper, ${CMAKE_DEP}libaio-dev, rsync, lsof
Standards-Version: 3.8.3
Homepage: http://mariadb.org/
Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files
Vcs-Bzr: bzr://lp:maria
Package: mariadb-galera-test-10.0
Section: database
Architecture: any
Depends: mariadb-galera-server-10.0 (= ${source:Version}), mariadb-client-10.0 (>= ${source:Version})
Suggests: patch
Conflicts: mariadb-test, mariadb-galera-test (<< ${source:Version}),
mariadb-test-5.1, mariadb-test-5.2, mariadb-test-5.3,
mariadb-test-5.5, mariadb-test-10.0,
mariadb-server-5.5, mariadb-galera-server-5.5,
mariadb-server-10.0
Replaces: mariadb-test (<< ${source:Version}), mariadb-galera-test (<< ${source:Version}),
mariadb-test-5.1, mariadb-test-5.2, mariadb-test-5.3,
mariadb-test-5.5
Description: MariaDB database regression test suite
MariaDB is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MariaDB are speed, robustness and
ease of use.
.
This package includes the regression test suite.
Package: mariadb-galera-server-10.0
Architecture: any
Suggests: tinyca, mailx, mariadb-test
Suggests: tinyca, mailx, mariadb-galera-test
Recommends: libhtml-template-perl
Pre-Depends: mariadb-common, adduser (>= 3.40), debconf
Depends: mariadb-client-10.0 (>= ${source:Version}), libdbi-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}, psmisc, passwd, lsb-base (>= 3.0-10), libmariadbclient18 (>= ${binary:Version}), galera (>=25.2)
......@@ -66,11 +87,11 @@ Description: MariaDB database client (metapackage depending on the latest versio
maintainers. Install this package if in doubt about which MariaDB version
you want, as this is the one we consider to be in the best shape.
Package: mariadb-test
Package: mariadb-galera-test
Section: database
Architecture: all
Depends: mariadb-test-10.0 (= ${source:Version})
Depends: mariadb-galera-test-10.0 (= ${source:Version})
Description: MariaDB database regression test suite (metapackage depending on the latest version)
This is an empty package that depends on the current "best" version of
mariadb-test (currently mariadb-test-10.0), as determined by the MariaDB
mariadb-galera-test (currently mariadb-galera-test-10.0), as determined by the MariaDB
maintainers.
......@@ -4,15 +4,36 @@ Priority: optional
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net>
Uploaders: MariaDB Developers <maria-developers@lists.launchpad.net>
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper, file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), ${LIBREADLINE_DEV}, libssl-dev, libpam0g-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, texlive-latex-base, ghostscript | gs-gpl, dpatch, gawk, bison, lsb-release, hardening-wrapper, ${CMAKE_DEP}libaio-dev
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper, file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), ${LIBREADLINE_DEV}, libssl-dev, libpam0g-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, texlive-latex-base, ghostscript | gs-gpl, dpatch, gawk, bison, lsb-release, hardening-wrapper, ${CMAKE_DEP}libaio-dev, rsync, lsof
Standards-Version: 3.8.2
Homepage: http://mariadb.org/
Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files
Vcs-Bzr: bzr://lp:maria
Package: mariadb-galera-test-10.0
Section: database
Architecture: any
Depends: mariadb-galera-server-10.0 (= ${source:Version}), mariadb-client-10.0 (>= ${source:Version})
Suggests: patch
Conflicts: mariadb-test, mariadb-galera-test (<< ${source:Version}),
mariadb-test-5.1, mariadb-test-5.2, mariadb-test-5.3,
mariadb-test-5.5, mariadb-test-10.0,
mariadb-server-5.5, mariadb-galera-server-5.5,
mariadb-server-10.0
Replaces: mariadb-test (<< ${source:Version}), mariadb-galera-test (<< ${source:Version}),
mariadb-test-5.1, mariadb-test-5.2, mariadb-test-5.3,
mariadb-test-5.5
Description: MariaDB database regression test suite
MariaDB is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MariaDB are speed, robustness and
ease of use.
.
This package includes the regression test suite.
Package: mariadb-galera-server-10.0
Architecture: any
Suggests: tinyca, mailx, mariadb-test
Suggests: tinyca, mailx, mariadb-galera-test
Recommends: libhtml-template-perl
Pre-Depends: mariadb-common, adduser (>= 3.40), debconf
Depends: mariadb-client-10.0 (>= ${source:Version}), libdbi-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}, psmisc, passwd, lsb-base (>= 3.0-10), libmariadbclient18 (>= ${binary:Version}), galera (>=25.2)
......@@ -66,11 +87,11 @@ Description: MariaDB database client (metapackage depending on the latest versio
maintainers. Install this package if in doubt about which MariaDB version
you want, as this is the one we consider to be in the best shape.
Package: mariadb-test
Package: mariadb-galera-test
Section: database
Architecture: all
Depends: mariadb-test-10.0 (= ${source:Version})
Depends: mariadb-galera-test-10.0 (= ${source:Version})
Description: MariaDB database regression test suite (metapackage depending on the latest version)
This is an empty package that depends on the current "best" version of
mariadb-test (currently mariadb-test-10.0), as determined by the MariaDB
mariadb-galera-test (currently mariadb-galera-test-10.0), as determined by the MariaDB
maintainers.
usr/bin
usr/share/man/man1
usr/share/mysql/mysql-test
usr/share/mysql/mysql-test/extra
usr/share/mysql/mysql-test/extra/binlog_tests
usr/share/mysql/mysql-test/extra/rpl_tests
usr/share/mysql/mysql-test/lib
usr/share/mysql/mysql-test/lib/My
usr/share/mysql/mysql-test/lib/My/SafeProcess
usr/share/mysql/mysql-test/lib/My/File
usr/share/mysql/mysql-test/lib/v1
usr/share/mysql/mysql-test/lib/v1/My
usr/share/mysql/mysql-test/collections
usr/share/mysql/mysql-test/t
usr/share/mysql/mysql-test/r
usr/share/mysql/mysql-test/include
usr/share/mysql/mysql-test/suite
usr/share/mysql/mysql-test/suite/parts
usr/share/mysql/mysql-test/suite/parts/inc
usr/share/mysql/mysql-test/suite/parts/t
usr/share/mysql/mysql-test/suite/parts/r
usr/share/mysql/mysql-test/suite/rpl_ndb
usr/share/mysql/mysql-test/suite/rpl_ndb/t
usr/share/mysql/mysql-test/suite/rpl_ndb/r
usr/share/mysql/mysql-test/suite/bugs
usr/share/mysql/mysql-test/suite/bugs/t
usr/share/mysql/mysql-test/suite/bugs/r
usr/share/mysql/mysql-test/suite/bugs/data
usr/share/mysql/mysql-test/suite/rpl
usr/share/mysql/mysql-test/suite/rpl/t
usr/share/mysql/mysql-test/suite/rpl/r
usr/share/mysql/mysql-test/suite/rpl/include
usr/share/mysql/mysql-test/suite/innodb
usr/share/mysql/mysql-test/suite/innodb/t
usr/share/mysql/mysql-test/suite/innodb/r
usr/share/mysql/mysql-test/suite/innodb/include
usr/share/mysql/mysql-test/suite/manual
usr/share/mysql/mysql-test/suite/manual/t
usr/share/mysql/mysql-test/suite/manual/r
usr/share/mysql/mysql-test/suite/stress
usr/share/mysql/mysql-test/suite/stress/t
usr/share/mysql/mysql-test/suite/stress/r
usr/share/mysql/mysql-test/suite/stress/include
usr/share/mysql/mysql-test/suite/jp
usr/share/mysql/mysql-test/suite/jp/t
usr/share/mysql/mysql-test/suite/jp/r
usr/share/mysql/mysql-test/suite/jp/include
usr/share/mysql/mysql-test/suite/jp/std_data
usr/share/mysql/mysql-test/suite/ndb
usr/share/mysql/mysql-test/suite/ndb/t
usr/share/mysql/mysql-test/suite/ndb/r
usr/share/mysql/mysql-test/suite/maria
usr/share/mysql/mysql-test/suite/maria/t
usr/share/mysql/mysql-test/suite/maria/r
usr/share/mysql/mysql-test/suite/funcs_2
usr/share/mysql/mysql-test/suite/funcs_2/lib
usr/share/mysql/mysql-test/suite/funcs_2/t
usr/share/mysql/mysql-test/suite/funcs_2/charset
usr/share/mysql/mysql-test/suite/funcs_2/r
usr/share/mysql/mysql-test/suite/funcs_2/include
usr/share/mysql/mysql-test/suite/funcs_2/data
usr/share/mysql/mysql-test/suite/binlog
usr/share/mysql/mysql-test/suite/binlog/t
usr/share/mysql/mysql-test/suite/binlog/r
usr/share/mysql/mysql-test/suite/binlog/std_data
usr/share/mysql/mysql-test/suite/ndb_team
usr/share/mysql/mysql-test/suite/ndb_team/t
usr/share/mysql/mysql-test/suite/ndb_team/r
usr/share/mysql/mysql-test/suite/federated
usr/share/mysql/mysql-test/suite/funcs_1
usr/share/mysql/mysql-test/suite/funcs_1/cursors
usr/share/mysql/mysql-test/suite/funcs_1/bitdata
usr/share/mysql/mysql-test/suite/funcs_1/views
usr/share/mysql/mysql-test/suite/funcs_1/storedproc
usr/share/mysql/mysql-test/suite/funcs_1/triggers
usr/share/mysql/mysql-test/suite/funcs_1/lib
usr/share/mysql/mysql-test/suite/funcs_1/t
usr/share/mysql/mysql-test/suite/funcs_1/r
usr/share/mysql/mysql-test/suite/funcs_1/include
usr/share/mysql/mysql-test/suite/funcs_1/datadict
usr/share/mysql/mysql-test/suite/vcol
usr/share/mysql/mysql-test/suite/vcol/inc
usr/share/mysql/mysql-test/suite/vcol/t
usr/share/mysql/mysql-test/suite/vcol/r
usr/share/mysql/mysql-test/suite/oqgraph
usr/share/mysql/mysql-test/suite/oqgraph/t
usr/share/mysql/mysql-test/suite/oqgraph/r
usr/share/mysql/mysql-test/suite/oqgraph/include
usr/share/mysql/mysql-test/suite/wsrep
usr/share/mysql/mysql-test/suite/wsrep/t
usr/share/mysql/mysql-test/suite/wsrep/r
usr/share/mysql/mysql-test/suite/galera
usr/share/mysql/mysql-test/suite/galera/t
usr/share/mysql/mysql-test/suite/galera/r
usr/share/mysql/mysql-test/std_data
usr/share/mysql/mysql-test/std_data/ndb_backup50
usr/share/mysql/mysql-test/std_data/parts
usr/share/mysql/mysql-test/std_data/ndb_backup51_data_le
usr/share/mysql/mysql-test/std_data/ndb_backup51_data_be
usr/share/mysql/mysql-test/std_data/ndb_backup51
usr/share/mysql/mysql-test/std_data/funcs_1
usr/lib/mysql/plugin/dialog_examples.so
usr/lib/mysql/plugin/auth_test_plugin.so
usr/lib/mysql/plugin/qa_auth_interface.so
usr/lib/mysql/plugin/qa_auth_server.so
usr/lib/mysql/plugin/qa_auth_client.so
usr/lib/mysql/plugin/auth_0x0100.so
usr/lib/mysql/plugin/mypluglib.so
usr/lib/mysql/plugin/ha_test_sql_discovery.so
usr/lib/mysql/plugin/daemon_example.ini
usr/lib/mysql/plugin/libdaemon_example.so
usr/lib/mysql/plugin/adt_null.so
usr/bin/mysql_client_test
usr/share/man/man1/mysql_client_test.1
usr/bin/mysqltest
usr/share/man/man1/mysqltest.1
usr/share/mysql/mysql-test
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mysql-test-run
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mtr
......@@ -34,6 +34,7 @@ BEGIN
AND variable_name != 'INNODB_USE_NATIVE_AIO'
AND variable_name not like 'GTID%POS'
AND variable_name != 'GTID_BINLOG_STATE'
AND variable_name != 'WSREP_DATA_HOME_DIR'
ORDER BY variable_name;
-- Dump all databases, there should be none
......
......@@ -187,6 +187,8 @@ my @DEFAULT_SUITES= qw(
sys_vars-
unit-
vcol-
galera-
wsrep-
);
my $opt_suites;
......@@ -412,6 +414,7 @@ sub main {
check_ndbcluster_support();
check_ssl_support();
check_debug_support();
check_wsrep_support();
if (!$opt_suites) {
$opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES);
......@@ -2397,6 +2400,22 @@ sub environment_setup {
$ENV{'NDB_EXAMPLES_OUTPUT'}= $path_ndb_testrun_log;
}
# ----------------------------------------------------
# Setup env for wsrep
# ----------------------------------------------------
if (have_wsrep()) {
if (defined $ENV{'WSREP_PROVIDER'} ) {
# Nothing needs to be done! WSREP_PROVIDER env is already set and will be
# used.
} else {
my $file_wsrep_provider=
mtr_file_exists("/usr/lib/galera/libgalera_smm.so",
"/usr/lib64/galera/libgalera_smm.so");
$ENV{'WSREP_PROVIDER'}= $file_wsrep_provider;
}
mtr_verbose("WSREP_PROVIDER set to $ENV{'WSREP_PROVIDER'}");
}
# ----------------------------------------------------
# mysql clients
# ----------------------------------------------------
......@@ -3174,6 +3193,17 @@ sub ndbcluster_start ($) {
return 0;
}
sub have_wsrep() {
my $wsrep_on= $mysqld_variables{'wsrep-on'};
return defined $wsrep_on
}
sub check_wsrep_support() {
if (have_wsrep())
{
mtr_report(" - binaries built with wsrep patch");
}
}
sub mysql_server_start($) {
my ($mysqld, $tinfo) = @_;
......
......@@ -3,12 +3,12 @@
[mysqld.1]
binlog-format=row
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://'
[mysqld.2]
binlog-format=row
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:4567'
wsrep_provider_options='gmcast.listen_addr=tcp://127.0.0.1:4568'
......
......@@ -142,8 +142,8 @@ id name
116 Record_10
117 Record_11
119 Record_12
120 Record_13
121 Record_14
121 Record_13
123 Record_14
## Changing column's datatype to BigInt and verifying variable's behavior ##
ALTER table t1 MODIFY id BIGINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_15');
......@@ -159,10 +159,10 @@ id name
116 Record_10
117 Record_11
119 Record_12
120 Record_13
121 Record_14
122 Record_15
123 Record_16
121 Record_13
123 Record_14
125 Record_15
127 Record_16
'#--------------------FN_DYNVARS_001_07-------------------------#'
## Verifying behavior of variable with negative value ##
SET @@auto_increment_increment = -10;
......@@ -181,12 +181,12 @@ id name
116 Record_10
117 Record_11
119 Record_12
120 Record_13
121 Record_14
122 Record_15
123 Record_16
124 Record_17
125 Record_18
121 Record_13
123 Record_14
125 Record_15
127 Record_16
128 Record_17
129 Record_18
## Disconnecting test_con2 ##
## Dropping table t1 ##
DROP table if exists t1;
......
......@@ -144,8 +144,8 @@ id name
125 Record_12
134 Record_13
140 Record_14
141 Record_15
142 Record_16
150 Record_15
160 Record_16
## Changing datatype of column id with primary key to BigInt ##
ALTER table t1 modify id BIGINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_17');
......@@ -166,10 +166,10 @@ id name
125 Record_12
134 Record_13
140 Record_14
141 Record_15
142 Record_16
143 Record_17
144 Record_18
150 Record_15
160 Record_16
170 Record_17
180 Record_18
'#--------------------FN_DYNVARS_002_07-------------------------#'
## Assigning -ve value to variable ##
SET @@auto_increment_offset = -10;
......@@ -196,12 +196,12 @@ id name
125 Record_12
134 Record_13
140 Record_14
141 Record_15
142 Record_16
143 Record_17
144 Record_18
145 Record_17
146 Record_18
150 Record_15
160 Record_16
170 Record_17
180 Record_18
181 Record_17
191 Record_18
## Assigning value that is out of range of variable ##
SET @@auto_increment_offset = 65536;
Warnings:
......@@ -229,16 +229,16 @@ id name
125 Record_12
134 Record_13
140 Record_14
141 Record_15
142 Record_16
143 Record_17
144 Record_18
145 Record_17
146 Record_18
147 Record_17
148 Record_18
149 Record_19
150 Record_20
150 Record_15
160 Record_16
170 Record_17
180 Record_18
181 Record_17
191 Record_18
199 Record_17
209 Record_18
219 Record_19
229 Record_20
## No effect of auto_increment_offset since value of this variable is greater ##
## than auto_increment_increment ##
## Dropping table ##
......
......@@ -65,6 +65,7 @@ wsrep_provider_name #
wsrep_provider_vendor #
wsrep_provider_version #
wsrep_ready #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_%';
Variable_name Value
......@@ -115,12 +116,14 @@ wsrep_provider_name #
wsrep_provider_vendor #
wsrep_provider_version #
wsrep_ready #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
Variable_name Value
wsrep_local_state_comment Synced
wsrep_local_state_comment #
# Should show nothing.
SHOW STATUS LIKE 'x';
Variable_name Value
SET GLOBAL wsrep_provider=none;
#
# MDEV#6079: xtrabackup SST failing with maria-10.0-galera
#
......@@ -132,4 +135,70 @@ wsrep_local_state_uuid #
SHOW STATUS LIKE 'wsrep_last_committed';
Variable_name Value
wsrep_last_committed #
SET GLOBAL wsrep_provider=none;
#
# MDEV#6206: wsrep_slave_threads subtracts from max_connections
#
call mtr.add_suppression("safe_mutex: Found wrong usage of mutex 'LOCK_wsrep_slave_threads' and 'LOCK_global_system_variables'");
call mtr.add_suppression("WSREP: Failed to get provider options");
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
none
SELECT @@global.wsrep_slave_threads;
@@global.wsrep_slave_threads
1
SELECT @@global.wsrep_cluster_address;
@@global.wsrep_cluster_address
NULL
SHOW STATUS LIKE 'threads_connected';
Variable_name Value
Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value
wsrep_thread_count 0
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
/usr/lib/galera/libgalera_smm.so
SELECT @@global.wsrep_cluster_address;
@@global.wsrep_cluster_address
NULL
SHOW STATUS LIKE 'threads_connected';
Variable_name Value
Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value
wsrep_thread_count 0
# Setting wsrep_cluster_address triggers the creation of
# applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://';
# Wait for applier threads to get created.
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
/usr/lib/galera/libgalera_smm.so
SELECT @@global.wsrep_cluster_address;
@@global.wsrep_cluster_address
gcomm://
SHOW STATUS LIKE 'threads_connected';
Variable_name Value
Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value
wsrep_thread_count 2
SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads;
SET GLOBAL wsrep_slave_threads= 10;
# Wait for applier threads to get created.
SHOW STATUS LIKE 'threads_connected';
Variable_name Value
Threads_connected 1
SHOW STATUS LIKE 'wsrep_thread_count';
Variable_name Value
wsrep_thread_count 11
SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
SET GLOBAL wsrep_provider= none;
SET GLOBAL wsrep_cluster_address= '';
SET GLOBAL wsrep_provider_options= '';
# End of test.
--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=/usr/lib/galera/libgalera_smm.so --wsrep-cluster-address=gcomm:// --wsrep-on=1 --log-bin
--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --wsrep-on=1 --log-bin
--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=/usr/lib/galera/libgalera_smm.so --wsrep-cluster-address=gcomm:// --thread_handling=pool-of-threads
--binlog-format=row --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=$WSREP_PROVIDER --wsrep-cluster-address=gcomm:// --thread_handling=pool-of-threads
--binlog-format=row --wsrep-provider=/usr/lib/galera/libgalera_smm.so --wsrep-cluster-address=gcomm://
......@@ -5,6 +5,10 @@
--echo #
--echo # Testing wsrep_replicate_myisam variable.
--disable_query_log
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.wsrep_replicate_myisam;
SELECT @@global.wsrep_replicate_myisam;
......@@ -30,15 +34,22 @@ SHOW GLOBAL STATUS LIKE 'wsrep%';
--replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep_%';
--replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
--echo # Should show nothing.
SHOW STATUS LIKE 'x';
SET GLOBAL wsrep_provider=none;
--echo #
--echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera
--echo #
--disable_query_log
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
# The following 2 variables are used in innobackupex during xtrabackup-based
# SST.
--echo
......@@ -48,4 +59,52 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid';
--replace_column 2 #
SHOW STATUS LIKE 'wsrep_last_committed';
SET GLOBAL wsrep_provider=none;
--echo
--echo #
--echo # MDEV#6206: wsrep_slave_threads subtracts from max_connections
--echo #
call mtr.add_suppression("safe_mutex: Found wrong usage of mutex 'LOCK_wsrep_slave_threads' and 'LOCK_global_system_variables'");
call mtr.add_suppression("WSREP: Failed to get provider options");
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_slave_threads;
SELECT @@global.wsrep_cluster_address;
SHOW STATUS LIKE 'threads_connected';
SHOW STATUS LIKE 'wsrep_thread_count';
--echo
--disable_query_log
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--enable_query_log
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_cluster_address;
SHOW STATUS LIKE 'threads_connected';
SHOW STATUS LIKE 'wsrep_thread_count';
--echo
--echo # Setting wsrep_cluster_address triggers the creation of
--echo # applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://';
--echo # Wait for applier threads to get created.
sleep 3;
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_cluster_address;
SHOW STATUS LIKE 'threads_connected';
SHOW STATUS LIKE 'wsrep_thread_count';
--echo
SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads;
SET GLOBAL wsrep_slave_threads= 10;
--echo # Wait for applier threads to get created.
sleep 3;
SHOW STATUS LIKE 'threads_connected';
SHOW STATUS LIKE 'wsrep_thread_count';
# reset (for mtr internal checks)
SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
SET GLOBAL wsrep_provider= none;
SET GLOBAL wsrep_cluster_address= '';
SET GLOBAL wsrep_provider_options= '';
--echo # End of test.
......@@ -28,6 +28,9 @@ export PATH="/usr/sbin:/sbin:$PATH"
. $(dirname $0)/wsrep_sst_common
# Setting the path for lsof on CentOS
export PATH="/usr/sbin:/sbin:$PATH"
wsrep_check_programs rsync
cleanup_joiner()
......@@ -57,6 +60,11 @@ check_pid_and_port()
local rsync_pid=$2
local rsync_port=$3
if ! which lsof > /dev/null; then
wsrep_log_error "lsof tool not found in PATH! Make sure you have it installed."
exit 2 # ENOENT
fi
local port_info=$(lsof -i :$rsync_port -Pn 2>/dev/null | \
grep "(LISTEN)")
local is_rsync=$(echo $port_info | \
......
......@@ -76,6 +76,7 @@
#include "wsrep_var.h"
#include "wsrep_thd.h"
#include "wsrep_sst.h"
ulong wsrep_running_threads = 0; // # of currently running wsrep threads
#endif
#include "sql_callback.h"
#include "threadpool.h"
......@@ -2820,9 +2821,19 @@ void thd_cleanup(THD *thd)
void dec_connection_count(THD *thd)
{
mysql_mutex_lock(&LOCK_connection_count);
(*thd->scheduler->connection_count)--;
mysql_mutex_unlock(&LOCK_connection_count);
#ifdef WITH_WSREP
/*
Do not decrement when its wsrep system thread. wsrep_applier is set for
applier as well as rollbacker threads.
*/
if (!thd->wsrep_applier)
#endif /* WITH_WSREP */
{
DBUG_ASSERT(*thd->scheduler->connection_count > 0);
mysql_mutex_lock(&LOCK_connection_count);
(*thd->scheduler->connection_count)--;
mysql_mutex_unlock(&LOCK_connection_count);
}
}
......@@ -2999,7 +3010,7 @@ bool one_thread_per_connection_end(THD *thd, bool put_in_cache)
set_current_thd(0);
#ifdef WITH_WSREP
if (put_in_cache && cache_thread() && !thd->wsrep_applier)
if (put_in_cache && cache_thread() && !wsrep_applier)
#else
if (put_in_cache && cache_thread())
#endif /* WITH_WSREP */
......@@ -5346,14 +5357,21 @@ pthread_handler_t start_wsrep_THD(void *arg)
thd->set_time();
thd->init_for_queries();
mysql_mutex_lock(&LOCK_connection_count);
++connection_count;
mysql_mutex_unlock(&LOCK_connection_count);
mysql_mutex_lock(&LOCK_thread_count);
wsrep_running_threads++;
mysql_cond_broadcast(&COND_thread_count);
mysql_mutex_unlock(&LOCK_thread_count);
processor(thd);
close_connection(thd, 0);
mysql_mutex_lock(&LOCK_thread_count);
wsrep_running_threads--;
WSREP_DEBUG("wsrep running threads now: %lu", wsrep_running_threads);
mysql_cond_broadcast(&COND_thread_count);
mysql_mutex_unlock(&LOCK_thread_count);
// Note: We can't call THD destructor without crashing
// if plugins have not been initialized. However, in most of the
// cases this means that pre SE initialization SST failed and
......@@ -8723,6 +8741,7 @@ SHOW_VAR status_vars[]= {
{"wsrep_provider_name", (char*) &wsrep_provider_name, SHOW_CHAR_PTR},
{"wsrep_provider_version", (char*) &wsrep_provider_version, SHOW_CHAR_PTR},
{"wsrep_provider_vendor", (char*) &wsrep_provider_vendor, SHOW_CHAR_PTR},
{"wsrep_thread_count", (char*) &wsrep_running_threads, SHOW_LONG_NOFLUSH},
{"wsrep", (char*) &wsrep_show_status, SHOW_FUNC},
#endif
{NullS, NullS, SHOW_LONG}
......
......@@ -307,11 +307,11 @@ unpack_row(rpl_group_info *rgi,
uint16 const metadata= tabledef->field_metadata(i);
#ifndef DBUG_OFF
uchar const *const old_pack_ptr= pack_ptr;
#else
#if WITH_WSREP
#else
#ifdef WITH_WSREP
uchar const *const old_pack_ptr= pack_ptr;
#endif
#endif
#endif /* WITH_WSREP */
#endif /* !DBUF_OFF */
pack_ptr= f->unpack(f->ptr, pack_ptr, row_end, metadata);
DBUG_PRINT("debug", ("field: %s; metadata: 0x%x;"
" pack_ptr: 0x%lx; pack_ptr': 0x%lx; bytes: %d",
......@@ -320,9 +320,11 @@ unpack_row(rpl_group_info *rgi,
(int) (pack_ptr - old_pack_ptr)));
if (!pack_ptr)
{
/* Debug message to troubleshoot bug:
https://mariadb.atlassian.net/browse/MDEV-4404
*/
#ifdef WITH_WSREP
/*
Debug message to troubleshoot bug:
https://mariadb.atlassian.net/browse/MDEV-4404
*/
WSREP_WARN("ROW event unpack field: %s metadata: 0x%x;"
" pack_ptr: 0x%lx; conv_table %p conv_field %p table %s"
" row_end: 0x%lx",
......@@ -330,6 +332,7 @@ unpack_row(rpl_group_info *rgi,
(ulong) old_pack_ptr, conv_table, conv_field,
(table_found) ? "found" : "not found", (ulong)row_end
);
#endif /* WITH_WSREP */
rgi->rli->report(ERROR_LEVEL, ER_SLAVE_CORRUPT_EVENT,
"Could not read field '%s' of table '%s.%s'",
......
......@@ -1071,8 +1071,9 @@ bool do_command(THD *thd)
command != COM_TIME &&
command != COM_END
) {
my_error(ER_UNKNOWN_COM_ERROR, MYF(0),
"WSREP has not yet prepared node for application use");
my_message(ER_UNKNOWN_COM_ERROR,
"WSREP has not yet prepared node for application use",
MYF(0));
thd->protocol->end_statement();
return_value= FALSE;
goto out;
......@@ -2642,8 +2643,9 @@ mysql_execute_command(THD *thd)
strncmp(thd->query(), mysqldump_magic_str, mysqldump_magic_str_len))
{
#endif /* DIRTY_HACK */
my_error(ER_UNKNOWN_COM_ERROR, MYF(0),
"WSREP has not yet prepared node for application use");
my_message(ER_UNKNOWN_COM_ERROR,
"WSREP has not yet prepared node for application use",
MYF(0));
goto error;
#if DIRTY_HACK
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment