Commit Graph

320 Commits

Author SHA1 Message Date
fab2eab0fd MXS-1568 Rolling restart of slaves
- Regular master/slave setup.
- Each slave is in turn taken down and restarted.
- Checked that the slave state changes accordingly.
2017-12-19 16:59:25 +02:00
2e68ba8c6e Automatically detect the need for GTID replication
Verifying that the requested replication type matches the one that is
currently in use allows the resetting of the nodes to automatically set up
the correct replication type. This means that a test that invokes
`Mariadb_nodes::require_gtid(true)` before initializing the
TestConnections class is given a replication setup that uses GTID
coordinates instead of file and position.
2017-12-19 16:44:46 +02:00
70088be16d Use default value for "smoke"
The values should only be updated if the environment variable is defined.
2017-12-19 16:44:46 +02:00
a10b93515e Simplify initialization of replication
The users are now created on both the slaves as well as the master. This
allows static binlog coordinates to be used on the slaves and the
replication initialization boils down to a set of SQL queries.
2017-12-19 16:44:46 +02:00
c3fe8a6b55 MXS-1565: Invalid rejoin test
- 1 master, 3 slaves
- stop maxscale so it does not autorejoin later on
- stop & reset slave on servers 3 & 4
- add data to server 4
- restart maxscale, check that server 3 is rejoined but not server 4
- manually set server 1 to replicate from server 4, creating a relay master
- check that servers 2 & 3 are redirected, making server 1 just a slave
- switchover master to server 1, check that it's the master

Also, moved some common functions into their own files. These functions
are used by multiple tests.
2017-12-19 15:59:01 +02:00
34bb02062d Use execute_query instead of try_query when failure expected
try_query will log an error unnecessarily.
2017-12-19 15:06:59 +02:00
628203213e Fix template generation
The templates weren't generated for Galera nodes.
2017-12-19 15:00:39 +02:00
4451355e47 Don't force verbose output
The tests shouldn't force verbose output.
2017-12-19 15:00:39 +02:00
1006ec506a 2.2 fix restore (#152)
* refactor test backend fixing

* return comatibility with 5.5 for backend restore

* remove backend configuration scripts

* adopt test backed restore function for 2.2 test fw
2017-12-18 23:47:07 +02:00
1a63e5ec7e 2.1 fix restore (#151)
* refactor test backend fixing

* return comatibility with 5.5 for backend restore

* remove backend configuration scripts
2017-12-18 23:47:02 +02:00
b9e7eaf3aa Do not create std::string from NULL 2017-12-18 16:31:50 +02:00
5a612be394 Do not try to create a std::string from NULL 2017-12-18 16:25:41 +02:00
c4ba3ba4ca MXS-1561 Switchover to bad master
auto_failover=true
auto_rejoin=false

This test tests the following:

- Regular master-slave setup
- Create a table, insert some data
- Sync all slaves
- Stop a slave
- Insert some more data
- Sync remaining slaves
- Stop the master
- Expect the failover mechanism to pick a new master (server2)
- Bring up the slave
- Perform a switchover from server2 to server4
- Should fail

Currently it does fail, but only due to a timeout.

    [mysqlmon] MASTER_GTID_WAIT() timed out on slave 'server4'.

There should be some check that would ensure that the failure happens
faster than that.
2017-12-18 15:41:21 +02:00
033e3f628e MXS-1566 Rejoin old slave
This test tests the following:

- Regular master-slave setup
- Create a table, insert some data
- Sync all slaves
- Stop a slave
- Insert some more data
- Sync remaining slaves
- Stop the master
- Expect the failover mechanism to pick a new master
- Bring up the slave
- Expect the slave to be rejoined
2017-12-18 14:36:47 +02:00
2c46e2a7ec Ensure slave not running when reseting
With this change it is ensured that you do not see

  ERROR 1198 (HY000) at line 28: This operation cannot be performed
  as you have a running slave ''; run STOP SLAVE '' first

when the slave is reset.
2017-12-18 10:58:09 +02:00
e45653724e Update .gitignore 2017-12-15 13:51:46 +02:00
e33b2d0fcd MXS-1567 Rolling master promotion
- The test starts with the usual setup of 1 master and 3 slaves.
- Then the master is taken down and it is checked that the failover
  mechanism promotes some slave to master.
- This is continued until there is a single master left (no
  slaves).
2017-12-15 13:51:46 +02:00
5fc787a67c Add 'detect_standalone_master=true'
Only necessary for the two node case and not needed once the flag
is on permanently.
2017-12-15 13:51:06 +02:00
ba24330d0f Restore original test behavior for mxs1476
The test now again blocks the nodes instead of stopping them. This should
fix the Galera cluster "corruption" which appears to happen when there are
only two nodes in the cluster which are both started and stopped.
2017-12-14 19:06:17 +02:00
6b5ed66404 MXS-1564: Add rejoin test
The test combines auto-failover, rejoining a temporarily downed master
server and switchover.
2017-12-14 11:33:53 +02:00
e2194a02ae fix wrong variable name in set_env.sh 2017-12-14 10:50:13 +02:00
f9b22387f9 fix wrong variable name in set_env.sh 2017-12-13 14:32:56 +02:00
6d3e165bb0 fix log copying in Testconnections 2017-12-12 18:34:06 +02:00
dde85af83b Clean up mariadb_func.h
Combined functions into one which only used different default
values. Removed unused functions. Used std::string where possible to make
their usage easier. Hid code that isn't used externally.
2017-12-12 16:36:51 +02:00
fe75273874 Fix mxs431
The test was broken during the merge.
2017-12-12 16:36:51 +02:00
f0d33a6ead MXS-1560 Manual failover with two good candidates
Not two specific good candidates, but all slaves are assumed
are equally good.
2017-12-12 13:27:57 +02:00
3c2d03fd80 MXS-1559 Add skeleton test implementation 2017-12-12 13:27:57 +02:00
79afaa447e Merge branch '2.1' into 2.2 2017-12-12 13:23:02 +02:00
7ebd487ef3 change cnfs for binlog tests 2017-12-12 12:24:21 +02:00
6485365b3b MXS-1514: Split failover test in two files, add manual version
The same test now has two versions. In the automatic version failover
begins automatically. In the manual version failover is started with
maxadmin. The tests are otherwise identical.
2017-12-12 11:09:50 +02:00
757ab3fd47 Increase mxs431 timeouts
The first timeouts don't appear to relate to the actual test but to
preparing it. Due to this, they can be increased by a great amount.
2017-12-12 08:53:19 +02:00
6b05d07c79 Update mxs431
Removed excessive output, tuned timeouts and removed unnecessary heap
allocation of TestConnections.
2017-12-12 08:47:02 +02:00
45ba9b3730 remove sha1check from *gtid tests due to lack of binlog files in the Maxscale cache 2017-12-11 16:12:42 +02:00
257112dc27 swithch to maxscale-system-test dir in the proper way before running test 2017-12-11 15:16:33 +02:00
357eb67a84 Add missing configuration file for mxs1509
The test configuration file was not added to git.
2017-12-11 12:31:40 +02:00
6803ca2efc Fix crash in mxs361
The test crashed as it used the wrong result set field.
2017-12-11 12:31:40 +02:00
821d21dafb remove unnecessary 'cd' in run_test_snapsht (#148)
remove unnecessary 'cd' in run_test_snapshot
2017-12-11 12:17:13 +02:00
1ae05f0487 MXS-1514: Fix failover test
Current failover code better detects weird situations and refuses to work in one.
The test server slaves have events far ahead of the master in their binlogs,
causing the failover to stop. To fix this, slave binlogs are now deleted when
a test begins.
2017-12-08 12:39:47 +02:00
3c88bf1ec6 refactored tests (#147) 2017-12-08 12:23:04 +02:00
0ba7bdca81 Update connector-c to 3.0.2 for tests
Updated connector to same version that is used in MaxScale.
2017-12-08 10:39:49 +02:00
7a6d00e807 Cherry-pick test fixes from 2.2
This is a partial cherry-pick of 9f11fdd2c122c9b30548c7ab55df8dda643ec659.

Use larger BLOB type for mxs812_1, the inserted value exceeds the normal
BLOB size.

Add a baseline check into bulk_insert to verify that direct connections
work (at the moment they don't, needs an investigation).

Modified avro_alter to prevent data type conversion errors.
2017-12-07 13:19:06 +02:00
a6a37969e9 fix condition for named test (#146) 2017-12-07 11:57:11 +02:00
8ddd16186e Add .gitignore to maxscale-system-test 2017-12-07 10:44:54 +02:00
50ae8b3826 remove scrit_dir definition from set_env.sh 2017-12-05 15:07:58 +02:00
e1d774f9b3 fix set_env.sh 2017-12-05 13:22:40 +02:00
9f11fdd2c1 Fix test failures
Use larger BLOB type for mxs812_1, the inserted value exceeds the normal
BLOB size.

Add a baseline check into bulk_insert to verify that direct connections
work (at the moment they don't, needs an investigation).

Updated parameter names in failover_mysqlmon_mrm.

Modified avro_alter to prevent data type conversion errors.
2017-12-05 09:43:06 +02:00
f45a011dbe add MDBCI test scripts (#145) 2017-12-05 00:30:30 +02:00
277ece53d0 Add assertion function to TestConnections
The TestConnections::assert behaves much like the normal assert function
by simply inverting the check for add_result.
2017-12-04 14:49:13 +02:00
0506669738 Only refresh users on failed authentication
When backend authentication failed due to errors other than wrong
credentials, the users were unconditionally reloaded. This caused a spike
of activity whenever authentication failed for other reasons.

Also fixed the test that checks for this to look for the correct error
message.
2017-12-01 06:01:18 +02:00
016b0f69f7 MXS-1509: Initial implementation of test case
Added some code to detect server states in a consistent manner and created
the test. The multi-source replication appeared to cause problems for the
test system which needs to be resolved.

Added --force flags to most direct `mysql` calls to prevent errors from
stopping the processing of remaining commands.
2017-11-30 12:39:00 +02:00