mirror of
https://github.com/MariaDB/server.git
synced 2025-10-24 07:13:33 +03:00
- BUG#15934: Instance manager fails to work;
- BUG#18020: IM connect problem;
- BUG#18027: IM: Server_ID differs;
- BUG#18033: IM: Server_ID not reported;
- BUG#21331: Instance Manager: Connect problems in tests;
The only test suite has been changed
(server codebase has not been modified).
BitKeeper/deleted/.del-im_check_os.inc:
Rename: mysql-test/include/im_check_os.inc -> BitKeeper/deleted/.del-im_check_os.inc
mysql-test/include/im_check_env.inc:
Include only this file from all IM-tests.
mysql-test/lib/mtr_io.pl:
Update mtr_get_pid_from_file() to workaround race,
described in BUG#21884.
mysql-test/lib/mtr_process.pl:
Refactor im_start()/im_stop() so that they will be more
reliable. There are the following user-visible changes:
- if one of these functions fails, the test suite
is aborted;
- mtr_im_stop() now determines whether the component is
alive or not not only by checking PID, but also by trying
to connect to the component;
- after starting IM, the test suite waits for it to start
accepting client connections and to start all its guarded
mysqld instances;
- a lot of debug-logs have been added in order to simplify
investigation of future failures.
mysql-test/mysql-test-run.pl:
1. Get rid of kill_and_cleanup();
2. Move im_start()/im_stop() to mtr_process.pl;
3. Change default IM port to 9311 so that it does not interfere
with default slave port;
mysql-test/r/im_daemon_life_cycle.result:
Updated result file.
mysql-test/r/im_life_cycle.result:
Updated result file.
mysql-test/r/im_options_set.result:
Updated result file.
mysql-test/r/im_options_unset.result:
Updated result file.
mysql-test/r/im_utils.result:
Updated result file.
mysql-test/t/im_daemon_life_cycle.imtest:
Updated IM-test.
mysql-test/t/im_life_cycle.imtest:
Updated IM-test.
mysql-test/t/im_options_set.imtest:
Updated IM-test.
mysql-test/t/im_options_unset.imtest:
Updated IM-test.
mysql-test/t/im_utils.imtest:
Updated IM-test.
125 lines
3.9 KiB
Plaintext
125 lines
3.9 KiB
Plaintext
###########################################################################
|
|
#
|
|
# This file contains test for (3) test suite.
|
|
#
|
|
# Consult WL#2789 for more information.
|
|
#
|
|
###########################################################################
|
|
|
|
#
|
|
# Check the options-management commands:
|
|
# - UNSET;
|
|
# - FLUSH INSTANCES;
|
|
#
|
|
# Let's test the commands on the option 'server_id'. It's expected that
|
|
# originally the instances have the following server ids:
|
|
# - mysqld1: 1
|
|
# - mysqld2: 2
|
|
#
|
|
# The test case:
|
|
#
|
|
# 1. UNSET <instance_id>.server_id;
|
|
#
|
|
# Do the step for both instances.
|
|
#
|
|
# 1.1. check that the configuration file has been updated (i.e. does not
|
|
# contain 'server_id=' line for the instance);
|
|
# 1.2. (for mysqld1) check that the running instance has not been affected:
|
|
# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
|
|
# returns non-zero value;
|
|
# 1.3. check that internal cache of Instance Manager is not affected (i.e.
|
|
# SHOW INSTANCE OPTIONS <instance> contains non-zero value for server_id);
|
|
#
|
|
# 2. FLUSH INSTANCES;
|
|
#
|
|
# Do the step for both instances.
|
|
#
|
|
# 2.1. check that the configuration file has not been updated (i.e. does not
|
|
# contain 'server_id=' for the instance);
|
|
# 2.2. (for mysqld1) check that the running instance has not been affected:
|
|
# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
|
|
# returns non-zero value;
|
|
# 2.3. check that internal cache of Instance Manager has been updated (i.e.
|
|
# SHOW INSTANCE OPTIONS <instance> does not contain 'server_id=' line).
|
|
#
|
|
|
|
###########################################################################
|
|
|
|
--source include/im_check_env.inc
|
|
|
|
###########################################################################
|
|
#
|
|
# 1. UNSET <instance_id>.server_id;
|
|
#
|
|
###########################################################################
|
|
|
|
# * mysqld1
|
|
|
|
UNSET mysqld1.server_id;
|
|
|
|
# - check that the configuration file has been updated (i.e. does not
|
|
# contain 'server_id=' line for the instance);
|
|
|
|
--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
|
|
|
|
# - check that the running instance has not been affected: connect to the
|
|
# instance and check that 'SHOW VARIABLES LIKE 'server_id'' returns non-zero
|
|
# value;
|
|
|
|
--connection mysql1_con
|
|
|
|
SHOW VARIABLES LIKE 'server_id';
|
|
|
|
--connection default
|
|
|
|
# - check that internal cache of Instance Manager is not affected (i.e. SHOW
|
|
# INSTANCE OPTIONS <instance> contains non-zero value for server_id);
|
|
# TODO: we should check only server_id option here.
|
|
|
|
# SHOW INSTANCE OPTIONS mysqld1;
|
|
|
|
# * mysqld2
|
|
|
|
UNSET mysqld2.server_id;
|
|
|
|
# - check that the configuration file has been updated (i.e. does not
|
|
# contain 'server_id=' line for the instance);
|
|
|
|
--exec grep server_id $MYSQLTEST_VARDIR/im.cnf || true;
|
|
|
|
# - check that internal cache of Instance Manager is not affected (i.e. SHOW
|
|
# INSTANCE OPTIONS <instance> contains non-zero value for server_id);
|
|
# TODO: we should check only server_id option here.
|
|
|
|
# SHOW INSTANCE OPTIONS mysqld2;
|
|
|
|
###########################################################################
|
|
#
|
|
# 2. FLUSH INSTANCES;
|
|
#
|
|
###########################################################################
|
|
|
|
FLUSH INSTANCES;
|
|
|
|
# - check that the configuration file has not been updated (i.e. does not
|
|
# contain 'server_id=' for the instance);
|
|
|
|
--exec grep server_id $MYSQLTEST_VARDIR/im.cnf || true;
|
|
|
|
# - (for mysqld1) check that the running instance has not been affected:
|
|
# connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
|
|
# returns non-zero value;
|
|
|
|
--connection mysql1_con
|
|
|
|
SHOW VARIABLES LIKE 'server_id';
|
|
|
|
--connection default
|
|
|
|
# - check that internal cache of Instance Manager has been updated (i.e.
|
|
# SHOW INSTANCE OPTIONS <instance> does not contain 'server_id=' line).
|
|
# TODO: we should check only server_id option here.
|
|
|
|
# SHOW INSTANCE OPTIONS mysqld1;
|
|
# SHOW INSTANCE OPTIONS mysqld2;
|