Commit Graph

126 Commits

Author SHA1 Message Date
304499bd36 Merge branch '2.2' into develop 2018-04-10 14:05:39 +03:00
4f8e1a99fc MXS-1743: Add test case
Added test case that reproduces the problem.
2018-04-04 19:43:46 +03:00
90c2d575c5 Add missing test labels
Added missing labels to tests that didn't have them. Also added a few
clarifying comments.
2018-04-03 16:27:18 +03:00
ff496979f6 MXS-1503: Add test case
Added test case that checks that session commands are properly executed.
2018-04-03 13:30:54 +03:00
876187b340 MXS-1503: Enable master reconnection
The `master_reconnection` parameter now controls both the reconnection of
the master server as well as the migration of the master server to another
server. Although these two cases appear to be different, the end result
from readwritesplit's point of view is the same and are thus controlled
with the same parameter.

The RWBackend class now resets its internal state when it is closed. This
allows readwritesplit to handle the case when a result was expected from
the master but the master died before the result was returned. The same
code should also handle slave connection failures mid-result, allowing
Backend reuse.

Added a test case that verifies the new functionality when combined with
`master_failure_mode=error_on_write`.
2018-04-03 13:30:51 +03:00
9f256f50eb Merge branch '2.2' into develop 2018-04-03 11:01:06 +03:00
4167e88719 MXS-1751: Fix crash with available_when_donor=true
The `MYSQL_ROW row` variable was being overwritten by the extra query done
by the SST method detection code. Moving it into its own function prevents
this and makes the code significantly easier to comprehend.

Added a test case that reproduced the problem (MaxScale crashed) and
verifies that the patch fixes the problem.
2018-03-31 20:21:07 +03:00
cbbfb1c5c0 Merge branch '2.2' into develop 2018-03-27 07:25:32 +03:00
32bfcc117b MXS-1731: Ignore empty values in persisted configs
If a MaxScale-generated configuration defines an empty value, it is
ignored with the assumption that the next modification will cause the
problem to correct itself.
2018-03-27 07:24:29 +03:00
03310fa981 Add missing .cpp suffix
It doesn't appear to be necessary but other files use it.
2018-03-21 14:58:09 +02:00
552c33e14d MXS-1719 Add test that reveals problem
With the masking filter, several UPDATEs as one multi-statement
causes the session to hang.
2018-03-21 14:58:09 +02:00
42412149bd Add missing .cpp suffix
It doesn't appear to be necessary but other files use it.
2018-03-21 14:14:14 +02:00
f5562d2cab MXS-1719 Add test that reveals problem
With the masking filter, several UPDATEs as one multi-statement
causes the session to hang.
2018-03-21 13:39:03 +02:00
f525822472 Merge branch '2.2' into develop 2018-03-20 13:14:54 +02:00
022c226d4b Mxs 1665 keepalived masterdown test (#171)
* add keepalived_masterdown test

* add missing cnfs
2018-03-16 15:14:14 +02:00
749f43a70e MXS-1475 Add system test for @maxscale.cache.(soft_ttl|hard_ttl) 2018-03-16 14:34:04 +02:00
2ec19e2358 MXS-1475 Add test case for @maxscale.cache.[use|populate]
Also extend logging.
2018-03-16 14:34:04 +02:00
6a49f6ff0d MXS-359: Add test with master_failure_mode=error_on_write
Testing of routing behavior with master_failure_mode=error_on_write and
allow_master_changes=true. By sending an error instead of closing the
connection when the master fails, the connection can resume execution if a
new master becomes available.
2018-03-14 14:34:48 +02:00
62d4fa822d MXS-359: Test read-only mode and master replacement
Added test cases that verify that the functionality works as
expected. Also made Mariadb_nodes::change_master less verbose when one of
the nodes is down.
2018-03-14 14:34:48 +02:00
9f5d2244ea Merge branch '2.2' into develop 2018-03-14 14:30:50 +02:00
2023ee4dc7 MXS-1713: Fix resultset collection code
The resultset collection was not detected early enough in the code which
caused partial results to be returned to the router.
2018-03-14 13:02:47 +02:00
f2709ded1c MXS-359: Add master switch test case
The test case verifies that the router behaves in the expected manner with
regards to transaction state and type, autocommit state and statement
type.
2018-03-08 11:19:17 +02:00
39d3c42c94 Merge branch '2.1' into 2.2 2018-03-01 17:52:42 +02:00
aab039f783 MXS-1677: Add test case
Added test case that reproduces the problem and verified that it is fixed.
2018-02-24 17:13:00 +02:00
8e31b30d19 MXS-1678: Add test case
Added test case that checks that relay master status is not lost when IO
thread is stopped.
2018-02-21 10:43:12 +02:00
f7857518f3 Mxs 1140 keepalived (#166)
add keepalived test
2018-02-12 15:49:07 +02:00
036a4cedcf MXS-1653: Add test case
Added test case that reproduces the problem.
2018-02-08 16:59:00 +02:00
6a1aba70e7 Add test case for ignore_external_masters + failover
The test checks that failover works even when the master of the monitored
cluster is a slave to an external masters. The test also verifies that the
servers do not get unexpected status labels.
2018-02-07 16:07:16 +02:00
6132ebd24f MXS-1643: Add test case
Added test case that checks that the correct state changes are made and no
extra events are triggered.

Also cleaned up the log checking function.
2018-02-06 14:51:07 +02:00
e1f1d8e58a Merge branch '2.1' into 2.2 2018-02-02 16:05:14 +02:00
facb8d60f7 MXS-1635 Test program for local_address
Tests that local_address is taken into account. However, at the time
of writing the maxscale VM does not have two usable IP addresses, so
we only test that explicitly specifying an IP-address does not break
things.

Locally it has been confirmed that this indeed works the way it is
supposed to.
2018-02-02 15:17:22 +02:00
84845a5732 Use basic configuration for mxs812_2
The test repeatedly blocks and unblocks a master which goes unnoticed by
the monitor due to the 10 second read timeouts in the monitor
configuration in the longblob template. The replication template uses the
default timeouts which makes the test actually exercise the functionality
that it is intended to test.
2018-02-02 12:28:07 +02:00
d506f01de9 Add basic MaxCtrl test
The test does a very minimal check for MaxCtrl functionality.
2018-01-31 13:38:28 +02:00
1a33c1caef Build CDC connector into the core test library
The CDC connector can be build directly into the core testing library for
testing purposes. This way we remove an unnecessary dependency on a
library. This commit fixes the linkage failure of the cdc_datatypes test.
2018-01-30 11:08:41 +02:00
cf0d745c14 MXS-1583 Add test that exposes the behaviour
This will fail with MaxScale 2.2.1.
2018-01-29 15:25:21 +02:00
d681d0f2fa Add manual rejoin tests 2018-01-25 11:49:37 +02:00
bf02571f45 MXS-1596 Test switchover under stress
- Start 4 threads where each thread sits in a loop and performs
  20% updates and 80% selects. Each thread has a table of its own.
- The main thread executes the following in a loop.
- Perform a switchover from the current master to the next (which is
  simply the next node % all nodes).
- Keep on doing that for 1.5 minutes.

The expectation is that the switchover will succeed, that is, after the
operation there will be a new master.
2018-01-16 10:31:27 +02:00
0afe10ffb9 Merge branch '2.1' into 2.2 2018-01-16 09:47:49 +02:00
ad634fe31e MXS-1596 Stress test for failover
- Start 4 threads where each thread sits in a loop and performs
  20% updates and 80% selects. Each thread has a table of its own.
- The main thread executes the following in a loop.
  - Take down the current master and wait a while (failover assumed
    to happen).
  - Put up the old master node and wait a while.

Keep on doing that for 1.5 minutes.

At the end check that:
- There is one 'Master'.
- The other nodes are either
  - 'Slave' or
  - 'Running' in which case it is checked it is because the node could
    not be rejoined.
2018-01-12 15:56:52 +02:00
eda8288161 Rename and fix test
Test now tries to reset the servers when successful.
Still seems to rarely fail.
2018-01-10 15:25:58 +02:00
c64fd4f39f MXS-1543: Add test case
Added test case that checks that statement based replication is detected.
2018-01-05 12:50:39 +02:00
a6914ebefe MXS-1565: Test for invalid old master rejoin
The test uses standard setup (1xMaster, 3xSlaves).

1. Shutdown master (server 1), check that autofailover promotes
a new master.
2. Stop MaxScale.
3. Start server 1 and add some events to it so it can no longer rejoin
cluster.
4. Start MaxScale, check that server 1 does not join.
5. Set current master to replicate from server 1, turning it to a relay
master.
6. Check that server 1 is master, all others are slaves (due to auto-rejoin).
2018-01-04 10:34:03 +02:00
7d8905d91f Merge branch '2.1' into 2.2 2018-01-03 14:05:31 +02:00
00ca809963 MXS-1542: Add test case
Added test case that checks whether UTF16 strings work. The test is
expected to fail.
2018-01-03 10:37:25 +02:00
bacc11d28e MXS-1516: Validate the connection on each query
A subset of the checks done at connection creation time need to be done at
query routing time. This guarantees that the connection is closed if the
server no longer qualifies as a valid candidate.

Added teset case that checks that a change in the replication topology
correctly breaks the connection.
2018-01-02 11:03:36 +02:00
eddd4db606 MXS-1562 Test switchover under ideal conditions 2018-01-02 10:21:01 +02:00
8b2aa52384 Merge branch '2.1' into 2.2 2017-12-29 08:42:49 +02:00
c6bc1f7327 MXS-1585: Add preliminary test case
The test case attempts to simulate the environment where the crash appears
to have happened. Local testing does not point out any problems.
2017-12-27 17:21:42 +02:00
6348ca7449 Add dependency on Jansson to the test core
The core library depends on Jansson and it must be built first.
2017-12-21 12:22:47 +02:00
96d084f1d6 Treat warnings as errors
Treat warnings as errors when compiling tests and fix where there
were problems.
2017-12-21 10:56:24 +02:00