1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Merging changes from maria-5.5-galera and

some test fixes.

bzr merge -r3479..3493 maria-5.5-galera
This commit is contained in:
Nirbhay Choubey
2014-05-22 18:31:04 -04:00
parent 0bf3ed12a5
commit ab4947463e
22 changed files with 425 additions and 71 deletions

View File

@ -1097,9 +1097,11 @@ sql/share/slovak
sql/share/spanish sql/share/spanish
sql/share/swedish sql/share/swedish
sql/share/ukrainian sql/share/ukrainian
scripts/wsrep_sst_common
scripts/wsrep_sst_mysqldump scripts/wsrep_sst_mysqldump
scripts/wsrep_sst_rsync scripts/wsrep_sst_rsync
scripts/wsrep_sst_xtrabackup scripts/wsrep_sst_xtrabackup
scripts/wsrep_sst_xtrabackup-v2
CPackConfig.cmake CPackConfig.cmake
CPackSourceConfig.cmake CPackSourceConfig.cmake
Docs/INFO_BIN Docs/INFO_BIN

View File

@ -23,8 +23,7 @@ SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "shared")
SET(CPACK_COMPONENT_COMMON_GROUP "common") SET(CPACK_COMPONENT_COMMON_GROUP "common")
SET(CPACK_COMPONENT_COMPAT_GROUP "compat") SET(CPACK_COMPONENT_COMPAT_GROUP "compat")
SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts
SupportFiles Readme) SupportFiles Readme Test)
SET(CPACK_RPM_PACKAGE_NAME "MariaDB-Galera") SET(CPACK_RPM_PACKAGE_NAME "MariaDB-Galera")
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${VERSION}-${RPM}-${CMAKE_SYSTEM_PROCESSOR}") 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") "MySQL-OurDelta-test")
SETA(CPACK_RPM_test_PACKAGE_PROVIDES SETA(CPACK_RPM_test_PACKAGE_PROVIDES
"MySQL-test") "MySQL-test")
SET(CPACK_RPM_test_PACKAGE_CONFLICTS
"MariaDB-test")
SETA(CPACK_RPM_server_PACKAGE_REQUIRES SETA(CPACK_RPM_server_PACKAGE_REQUIRES
${CPACK_RPM_PACKAGE_REQUIRES} ${CPACK_RPM_PACKAGE_REQUIRES}

View File

@ -23,7 +23,7 @@ SET(WSREP_PATCH_VERSION "10")
# MariaDB addition: Revision number of the last revision merged from # MariaDB addition: Revision number of the last revision merged from
# codership branch visible in @@visible_comment. # codership branch visible in @@visible_comment.
# Branch : codership-mysql/5.5 # 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: # MariaDB: Obtain patch revision number:
# Update WSREP_PATCH_REVNO if WSREP_REV environment variable is set. # Update WSREP_PATCH_REVNO if WSREP_REV environment variable is set.

View File

@ -4,15 +4,36 @@ Priority: optional
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net> Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net> XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net>
Uploaders: MariaDB 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 Standards-Version: 3.8.3
Homepage: http://mariadb.org/ Homepage: http://mariadb.org/
Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files
Vcs-Bzr: bzr://lp:maria 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 Package: mariadb-galera-server-10.0
Architecture: any Architecture: any
Suggests: tinyca, mailx, mariadb-test Suggests: tinyca, mailx, mariadb-galera-test
Recommends: libhtml-template-perl Recommends: libhtml-template-perl
Pre-Depends: mariadb-common, adduser (>= 3.40), debconf 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) 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 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. you want, as this is the one we consider to be in the best shape.
Package: mariadb-test Package: mariadb-galera-test
Section: database Section: database
Architecture: all 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) 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 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. maintainers.

View File

@ -4,15 +4,36 @@ Priority: optional
Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net> Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net> XSBC-Original-Maintainer: Maria Developers <maria-developers@lists.launchpad.net>
Uploaders: MariaDB 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 Standards-Version: 3.8.2
Homepage: http://mariadb.org/ Homepage: http://mariadb.org/
Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files
Vcs-Bzr: bzr://lp:maria 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 Package: mariadb-galera-server-10.0
Architecture: any Architecture: any
Suggests: tinyca, mailx, mariadb-test Suggests: tinyca, mailx, mariadb-galera-test
Recommends: libhtml-template-perl Recommends: libhtml-template-perl
Pre-Depends: mariadb-common, adduser (>= 3.40), debconf 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) 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 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. you want, as this is the one we consider to be in the best shape.
Package: mariadb-test Package: mariadb-galera-test
Section: database Section: database
Architecture: all 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) 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 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. maintainers.

101
debian/mariadb-galera-test-10.0.dirs vendored Normal file
View File

@ -0,0 +1,101 @@
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

16
debian/mariadb-galera-test-10.0.files vendored Normal file
View File

@ -0,0 +1,16 @@
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

2
debian/mariadb-galera-test-10.0.links vendored Normal file
View File

@ -0,0 +1,2 @@
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

View File

@ -34,6 +34,7 @@ BEGIN
AND variable_name != 'INNODB_USE_NATIVE_AIO' AND variable_name != 'INNODB_USE_NATIVE_AIO'
AND variable_name not like 'GTID%POS' AND variable_name not like 'GTID%POS'
AND variable_name != 'GTID_BINLOG_STATE' AND variable_name != 'GTID_BINLOG_STATE'
AND variable_name != 'WSREP_DATA_HOME_DIR'
ORDER BY variable_name; ORDER BY variable_name;
-- Dump all databases, there should be none -- Dump all databases, there should be none

View File

@ -187,6 +187,8 @@ my @DEFAULT_SUITES= qw(
sys_vars- sys_vars-
unit- unit-
vcol- vcol-
galera-
wsrep-
); );
my $opt_suites; my $opt_suites;
@ -412,6 +414,7 @@ sub main {
check_ndbcluster_support(); check_ndbcluster_support();
check_ssl_support(); check_ssl_support();
check_debug_support(); check_debug_support();
check_wsrep_support();
if (!$opt_suites) { if (!$opt_suites) {
$opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES); $opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES);
@ -2397,6 +2400,22 @@ sub environment_setup {
$ENV{'NDB_EXAMPLES_OUTPUT'}= $path_ndb_testrun_log; $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 # mysql clients
# ---------------------------------------------------- # ----------------------------------------------------
@ -3174,6 +3193,17 @@ sub ndbcluster_start ($) {
return 0; 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($) { sub mysql_server_start($) {
my ($mysqld, $tinfo) = @_; my ($mysqld, $tinfo) = @_;

View File

@ -3,12 +3,12 @@
[mysqld.1] [mysqld.1]
binlog-format=row binlog-format=row
wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://' wsrep_cluster_address='gcomm://'
[mysqld.2] [mysqld.2]
binlog-format=row 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_cluster_address='gcomm://127.0.0.1:4567'
wsrep_provider_options='gmcast.listen_addr=tcp://127.0.0.1:4568' wsrep_provider_options='gmcast.listen_addr=tcp://127.0.0.1:4568'

View File

@ -142,8 +142,8 @@ id name
116 Record_10 116 Record_10
117 Record_11 117 Record_11
119 Record_12 119 Record_12
120 Record_13 121 Record_13
121 Record_14 123 Record_14
## Changing column's datatype to BigInt and verifying variable's behavior ## ## Changing column's datatype to BigInt and verifying variable's behavior ##
ALTER table t1 MODIFY id BIGINT NOT NULL auto_increment; ALTER table t1 MODIFY id BIGINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_15'); INSERT into t1(name) values('Record_15');
@ -159,10 +159,10 @@ id name
116 Record_10 116 Record_10
117 Record_11 117 Record_11
119 Record_12 119 Record_12
120 Record_13 121 Record_13
121 Record_14 123 Record_14
122 Record_15 125 Record_15
123 Record_16 127 Record_16
'#--------------------FN_DYNVARS_001_07-------------------------#' '#--------------------FN_DYNVARS_001_07-------------------------#'
## Verifying behavior of variable with negative value ## ## Verifying behavior of variable with negative value ##
SET @@auto_increment_increment = -10; SET @@auto_increment_increment = -10;
@ -181,12 +181,12 @@ id name
116 Record_10 116 Record_10
117 Record_11 117 Record_11
119 Record_12 119 Record_12
120 Record_13 121 Record_13
121 Record_14 123 Record_14
122 Record_15 125 Record_15
123 Record_16 127 Record_16
124 Record_17 128 Record_17
125 Record_18 129 Record_18
## Disconnecting test_con2 ## ## Disconnecting test_con2 ##
## Dropping table t1 ## ## Dropping table t1 ##
DROP table if exists t1; DROP table if exists t1;

View File

@ -144,8 +144,8 @@ id name
125 Record_12 125 Record_12
134 Record_13 134 Record_13
140 Record_14 140 Record_14
141 Record_15 150 Record_15
142 Record_16 160 Record_16
## Changing datatype of column id with primary key to BigInt ## ## Changing datatype of column id with primary key to BigInt ##
ALTER table t1 modify id BIGINT NOT NULL auto_increment; ALTER table t1 modify id BIGINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_17'); INSERT into t1(name) values('Record_17');
@ -166,10 +166,10 @@ id name
125 Record_12 125 Record_12
134 Record_13 134 Record_13
140 Record_14 140 Record_14
141 Record_15 150 Record_15
142 Record_16 160 Record_16
143 Record_17 170 Record_17
144 Record_18 180 Record_18
'#--------------------FN_DYNVARS_002_07-------------------------#' '#--------------------FN_DYNVARS_002_07-------------------------#'
## Assigning -ve value to variable ## ## Assigning -ve value to variable ##
SET @@auto_increment_offset = -10; SET @@auto_increment_offset = -10;
@ -196,12 +196,12 @@ id name
125 Record_12 125 Record_12
134 Record_13 134 Record_13
140 Record_14 140 Record_14
141 Record_15 150 Record_15
142 Record_16 160 Record_16
143 Record_17 170 Record_17
144 Record_18 180 Record_18
145 Record_17 181 Record_17
146 Record_18 191 Record_18
## Assigning value that is out of range of variable ## ## Assigning value that is out of range of variable ##
SET @@auto_increment_offset = 65536; SET @@auto_increment_offset = 65536;
Warnings: Warnings:
@ -229,16 +229,16 @@ id name
125 Record_12 125 Record_12
134 Record_13 134 Record_13
140 Record_14 140 Record_14
141 Record_15 150 Record_15
142 Record_16 160 Record_16
143 Record_17 170 Record_17
144 Record_18 180 Record_18
145 Record_17 181 Record_17
146 Record_18 191 Record_18
147 Record_17 199 Record_17
148 Record_18 209 Record_18
149 Record_19 219 Record_19
150 Record_20 229 Record_20
## No effect of auto_increment_offset since value of this variable is greater ## ## No effect of auto_increment_offset since value of this variable is greater ##
## than auto_increment_increment ## ## than auto_increment_increment ##
## Dropping table ## ## Dropping table ##

View File

@ -65,6 +65,7 @@ wsrep_provider_name #
wsrep_provider_vendor # wsrep_provider_vendor #
wsrep_provider_version # wsrep_provider_version #
wsrep_ready # wsrep_ready #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_%'; SHOW GLOBAL STATUS LIKE 'wsrep_%';
Variable_name Value Variable_name Value
@ -115,12 +116,14 @@ wsrep_provider_name #
wsrep_provider_vendor # wsrep_provider_vendor #
wsrep_provider_version # wsrep_provider_version #
wsrep_ready # wsrep_ready #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
Variable_name Value Variable_name Value
wsrep_local_state_comment Synced wsrep_local_state_comment #
# Should show nothing. # Should show nothing.
SHOW STATUS LIKE 'x'; SHOW STATUS LIKE 'x';
Variable_name Value Variable_name Value
SET GLOBAL wsrep_provider=none;
# #
# MDEV#6079: xtrabackup SST failing with maria-10.0-galera # MDEV#6079: xtrabackup SST failing with maria-10.0-galera
# #
@ -132,4 +135,70 @@ wsrep_local_state_uuid #
SHOW STATUS LIKE 'wsrep_last_committed'; SHOW STATUS LIKE 'wsrep_last_committed';
Variable_name Value Variable_name Value
wsrep_last_committed # 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. # End of test.

View File

@ -1 +1 @@
--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

View File

@ -1 +1 @@
--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

View File

@ -1 +0,0 @@
--binlog-format=row --wsrep-provider=/usr/lib/galera/libgalera_smm.so --wsrep-cluster-address=gcomm://

View File

@ -5,6 +5,10 @@
--echo # --echo #
--echo # Testing wsrep_replicate_myisam variable. --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 --error ER_INCORRECT_GLOBAL_LOCAL_VAR
SELECT @@session.wsrep_replicate_myisam; SELECT @@session.wsrep_replicate_myisam;
SELECT @@global.wsrep_replicate_myisam; SELECT @@global.wsrep_replicate_myisam;
@ -30,15 +34,22 @@ SHOW GLOBAL STATUS LIKE 'wsrep%';
--replace_column 2 # --replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep_%'; SHOW GLOBAL STATUS LIKE 'wsrep_%';
--replace_column 2 #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
--echo # Should show nothing. --echo # Should show nothing.
SHOW STATUS LIKE 'x'; SHOW STATUS LIKE 'x';
SET GLOBAL wsrep_provider=none;
--echo # --echo #
--echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera --echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera
--echo # --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 # The following 2 variables are used in innobackupex during xtrabackup-based
# SST. # SST.
--echo --echo
@ -48,4 +59,52 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid';
--replace_column 2 # --replace_column 2 #
SHOW STATUS LIKE 'wsrep_last_committed'; 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. --echo # End of test.

View File

@ -28,6 +28,9 @@ export PATH="/usr/sbin:/sbin:$PATH"
. $(dirname $0)/wsrep_sst_common . $(dirname $0)/wsrep_sst_common
# Setting the path for lsof on CentOS
export PATH="/usr/sbin:/sbin:$PATH"
wsrep_check_programs rsync wsrep_check_programs rsync
cleanup_joiner() cleanup_joiner()
@ -57,6 +60,11 @@ check_pid_and_port()
local rsync_pid=$2 local rsync_pid=$2
local rsync_port=$3 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 | \ local port_info=$(lsof -i :$rsync_port -Pn 2>/dev/null | \
grep "(LISTEN)") grep "(LISTEN)")
local is_rsync=$(echo $port_info | \ local is_rsync=$(echo $port_info | \

View File

@ -76,6 +76,7 @@
#include "wsrep_var.h" #include "wsrep_var.h"
#include "wsrep_thd.h" #include "wsrep_thd.h"
#include "wsrep_sst.h" #include "wsrep_sst.h"
ulong wsrep_running_threads = 0; // # of currently running wsrep threads
#endif #endif
#include "sql_callback.h" #include "sql_callback.h"
#include "threadpool.h" #include "threadpool.h"
@ -2820,9 +2821,19 @@ void thd_cleanup(THD *thd)
void dec_connection_count(THD *thd) void dec_connection_count(THD *thd)
{ {
mysql_mutex_lock(&LOCK_connection_count); #ifdef WITH_WSREP
(*thd->scheduler->connection_count)--; /*
mysql_mutex_unlock(&LOCK_connection_count); 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); set_current_thd(0);
#ifdef WITH_WSREP #ifdef WITH_WSREP
if (put_in_cache && cache_thread() && !thd->wsrep_applier) if (put_in_cache && cache_thread() && !wsrep_applier)
#else #else
if (put_in_cache && cache_thread()) if (put_in_cache && cache_thread())
#endif /* WITH_WSREP */ #endif /* WITH_WSREP */
@ -5346,14 +5357,21 @@ pthread_handler_t start_wsrep_THD(void *arg)
thd->set_time(); thd->set_time();
thd->init_for_queries(); thd->init_for_queries();
mysql_mutex_lock(&LOCK_connection_count); mysql_mutex_lock(&LOCK_thread_count);
++connection_count; wsrep_running_threads++;
mysql_mutex_unlock(&LOCK_connection_count); mysql_cond_broadcast(&COND_thread_count);
mysql_mutex_unlock(&LOCK_thread_count);
processor(thd); processor(thd);
close_connection(thd, 0); 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 // Note: We can't call THD destructor without crashing
// if plugins have not been initialized. However, in most of the // if plugins have not been initialized. However, in most of the
// cases this means that pre SE initialization SST failed and // 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_name", (char*) &wsrep_provider_name, SHOW_CHAR_PTR},
{"wsrep_provider_version", (char*) &wsrep_provider_version, SHOW_CHAR_PTR}, {"wsrep_provider_version", (char*) &wsrep_provider_version, SHOW_CHAR_PTR},
{"wsrep_provider_vendor", (char*) &wsrep_provider_vendor, 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}, {"wsrep", (char*) &wsrep_show_status, SHOW_FUNC},
#endif #endif
{NullS, NullS, SHOW_LONG} {NullS, NullS, SHOW_LONG}

View File

@ -308,10 +308,10 @@ unpack_row(rpl_group_info *rgi,
#ifndef DBUG_OFF #ifndef DBUG_OFF
uchar const *const old_pack_ptr= pack_ptr; uchar const *const old_pack_ptr= pack_ptr;
#else #else
#if WITH_WSREP #ifdef WITH_WSREP
uchar const *const old_pack_ptr= pack_ptr; uchar const *const old_pack_ptr= pack_ptr;
#endif #endif /* WITH_WSREP */
#endif #endif /* !DBUF_OFF */
pack_ptr= f->unpack(f->ptr, pack_ptr, row_end, metadata); pack_ptr= f->unpack(f->ptr, pack_ptr, row_end, metadata);
DBUG_PRINT("debug", ("field: %s; metadata: 0x%x;" DBUG_PRINT("debug", ("field: %s; metadata: 0x%x;"
" pack_ptr: 0x%lx; pack_ptr': 0x%lx; bytes: %d", " pack_ptr: 0x%lx; pack_ptr': 0x%lx; bytes: %d",
@ -320,8 +320,10 @@ unpack_row(rpl_group_info *rgi,
(int) (pack_ptr - old_pack_ptr))); (int) (pack_ptr - old_pack_ptr)));
if (!pack_ptr) if (!pack_ptr)
{ {
/* Debug message to troubleshoot bug: #ifdef WITH_WSREP
https://mariadb.atlassian.net/browse/MDEV-4404 /*
Debug message to troubleshoot bug:
https://mariadb.atlassian.net/browse/MDEV-4404
*/ */
WSREP_WARN("ROW event unpack field: %s metadata: 0x%x;" WSREP_WARN("ROW event unpack field: %s metadata: 0x%x;"
" pack_ptr: 0x%lx; conv_table %p conv_field %p table %s" " pack_ptr: 0x%lx; conv_table %p conv_field %p table %s"
@ -330,6 +332,7 @@ unpack_row(rpl_group_info *rgi,
(ulong) old_pack_ptr, conv_table, conv_field, (ulong) old_pack_ptr, conv_table, conv_field,
(table_found) ? "found" : "not found", (ulong)row_end (table_found) ? "found" : "not found", (ulong)row_end
); );
#endif /* WITH_WSREP */
rgi->rli->report(ERROR_LEVEL, ER_SLAVE_CORRUPT_EVENT, rgi->rli->report(ERROR_LEVEL, ER_SLAVE_CORRUPT_EVENT,
"Could not read field '%s' of table '%s.%s'", "Could not read field '%s' of table '%s.%s'",

View File

@ -1071,8 +1071,9 @@ bool do_command(THD *thd)
command != COM_TIME && command != COM_TIME &&
command != COM_END command != COM_END
) { ) {
my_error(ER_UNKNOWN_COM_ERROR, MYF(0), my_message(ER_UNKNOWN_COM_ERROR,
"WSREP has not yet prepared node for application use"); "WSREP has not yet prepared node for application use",
MYF(0));
thd->protocol->end_statement(); thd->protocol->end_statement();
return_value= FALSE; return_value= FALSE;
goto out; goto out;
@ -2642,8 +2643,9 @@ mysql_execute_command(THD *thd)
strncmp(thd->query(), mysqldump_magic_str, mysqldump_magic_str_len)) strncmp(thd->query(), mysqldump_magic_str, mysqldump_magic_str_len))
{ {
#endif /* DIRTY_HACK */ #endif /* DIRTY_HACK */
my_error(ER_UNKNOWN_COM_ERROR, MYF(0), my_message(ER_UNKNOWN_COM_ERROR,
"WSREP has not yet prepared node for application use"); "WSREP has not yet prepared node for application use",
MYF(0));
goto error; goto error;
#if DIRTY_HACK #if DIRTY_HACK
} }