Commit Graph

1019 Commits

Author SHA1 Message Date
f2688784cf Reconnect before sync in mxs1743_rconn_bitmask
The blocking of the nodes that happens before it could cause the
connections to break. This also removes the need for the fixing of the
replication which takes time.
2018-11-12 10:13:59 +02:00
2a6df0e724 Merge branch '2.2' into 2.3 2018-11-09 14:22:28 +02:00
00eb7cb4ee Automatically stop secondary MaxScale
If the test uses two MaxScales, they are automatically stopped after the
test. This prevents the second MaxScale from interfering with subsequent
tests.
2018-11-09 12:13:22 +02:00
514b5f7856 Fix mxs359_read_only
Due to the changes in the monitor, an explicit failcount=1 and extra waits
are required to make sure the master actually changes.
2018-11-09 12:13:22 +02:00
226fe4871d Log mysql error message in mxs1776_ps_exec_hang
If the test fails, log the error message. This should help understand why
the test failed.
2018-11-09 12:13:21 +02:00
00d0ec5f8e Move wait_for_maxscale functionality inside MaxScale
By exposing a (currently undocumented) debug endpoint that lets one
monitor interval pass, we make the reuse of the monitor waiting
functionality a lot easier. With it, when MaxScale is started by the test
framework it knows that at least one monitor interval will have passed for
all monitors and that the system is ready to accept queries.
2018-11-09 09:13:27 +02:00
a53dbeec57 Always use service restart for startup
By starting MaxScale with `service restart maxscale`, the start() function
is idempotent: MaxScale is started from a stopped state.
2018-11-09 09:13:27 +02:00
eb1bc0b768 Add more error logging to Galera checks
The reason for the failure is now logged.
2018-11-09 09:13:27 +02:00
f085abf720 Use one ssh connection for block/unblock operations
As the ssh_node_f function supports full shell syntax, all of the work can
be done with a single ssh connection. This removes the overhead that each
extra ssh connection adds.
2018-11-09 09:13:27 +02:00
4f3ae823a9 Speed up log copying
The collection of the various artifacts generated by a test case and the
core dump detection is now done in the same SSH command. This removes the
extra overhead that it added.
2018-11-09 09:13:27 +02:00
ff9b26b7fa Remove unnecessary SSHing to MaxScale at test startup
There were a total of five SSH connections opened at the start of each
test. Only two of these are currently required: the SSL certificate
directory check and the actual command that restarts MaxScale. Two of the
three remaining commands, stopping of MaxScale and copying of the
configuration, can be made conditional or combined into other
commands.

The stopping of MaxScale is done to prevent it from interfering with the
cluster setup process. As MaxScale does nothing if nothing is wrong, it is
safe to make the restart conditional so that it is done only when a
problem in the cluster setup is detected.

The final SSH command, the MaxScale health check via maxadmin, can be
removed as it is redundant: the daemonization already covers this by
exiting only after MaxScale is ready.
2018-11-09 09:13:26 +02:00
4e3d1a29b6 Clean up Galera_nodes::check_galera
The code can be simplified as only one of the nodes needs to be checked to
see how many nodes are in the cluster.
2018-11-09 09:13:26 +02:00
69bf3a90d3 Fix and improve Galera startup
A certain templated parameter was only substituted when the VMs were
provisioned. This needs to be handled by the test framework to allow
changes into Galera clusters configuration.

Also made the startup of the "lesser" nodes parallel so minimize the
startup time.
2018-11-09 09:13:26 +02:00
2ac1656fc7 Fix galera initialization
The galera configurations need pre-processing before they can be
used. Switched to std::endl to automatically flush the output at the end
of each line. This makes it easier to see what is happening when the tests
are ran by buildbot. Also removed the extra startup of the servers that
was done right after installing the database.
2018-11-09 09:13:26 +02:00
4e87d7da4c Remove unused files
The files weren't used or were built but not used.
2018-11-09 09:13:26 +02:00
6479656445 Remove commented out tests
The tests weren't enabled in 2.1 so they are unlikely to be up to date.
2018-11-09 09:13:26 +02:00
d7e809f525 Group blr and avrorouter tests
Grouped all binlogrouter and avrorouter tests so that they are executed as
the last tests. This helps prevent some side effects that result from the
"aggressive" replication modifications the tests do. Also removed some
commented out test cases.
2018-11-09 09:13:25 +02:00
8f542d05ba Organize tests by backend server type
Grouping the tests helps detect Galera specific problems.
2018-11-09 09:13:25 +02:00
70dfb447a2 Use normal config for bug681
The test doesn't require Galera backends.
2018-11-09 09:13:25 +02:00
df003a3e7c Use normal config for server_weight
The backends used for the test don't have to be Galera servers as the
functionality is generic.
2018-11-09 09:13:25 +02:00
8c9ecf2756 Remove redundant tests
The tests tested generic functionality and the backend type should not
affect the test results.
2018-11-09 09:13:25 +02:00
ccec2a387a Fix replication in parallel
If the replication is broken between the nodes, it is now fixed in
parallel on all nodes instead of doing it one server at a time.

This reduces the time from about 120 seconds to 13 seconds. The time was
measured by running the check_backend test first with all backends broken
and then with the fixed backends subtracting time of the latter from the
former.
2018-11-09 09:13:25 +02:00
04e4f17618 Sort tests by replication type
The tests that require GTID replication are now all grouped together. This
removes the need to reconfigure the test environment multiple times.
2018-11-09 09:13:25 +02:00
3a5b49caf1 Speed up mxs1751_available_when_donor_crash
As the wait_for_monitor function guarantees that the monitor notices the
state change, we can skip the replication fixing which was somewhat
superficial in the first place.
2018-11-09 09:13:25 +02:00
c523bf74b8 Rewrite binlog_change_master tests
The tests were consistently unstable and as a result of this did not
provide any actionable output. In addition to this these two test were the
longest running tests in the whole MaxScale test suite so a re-design was
warranted.

Instead of emulating a client and a server failure, testing functionality
provides for a test that is faster, more precise and provides more
actionable output. Due to the single-threadedness of the new test, no
cross-thread depencies are present. In addition to this, the superfluous
log flushing was not done as it almost always happened after all
transactions were already complete.

The estimated savings in test time alone is around 1100 seconds (roughly
18 minutes).
2018-11-09 09:13:25 +02:00
b77d5568d8 Add output to mxs1743_rconn_bitmask
This helps analyze why the test is hanging when the slaves are synced.
2018-11-09 09:13:24 +02:00
6a8ba999bd MXS-2095: Fix crash on GRANT CREATE TEMPORARY TABLE
The avrorouter classified the GRANT statement as a CREATE TABLE statement.
2018-11-08 08:31:48 +02:00
8f8e92684a Ensure that correct slave is promoted
Should make the test more likely to succeed.
2018-11-07 12:55:59 +02:00
383b0b1989 Merge branch '2.2' into 2.3 2018-11-06 21:12:20 +02:00
3300bfd17f Remove test for passwd removal
Configs with passwd are still accepted in 2.3.
2018-11-06 15:09:14 +02:00
b2d1a5b91b Remove unnecessary sleeps from mxs812_2
The 20 second sleep was not needed. Using wait_for_monitor is better since
it makes sure the blocking of the nodes is visible.
2018-11-06 15:08:36 +02:00
c6e51e7513 Shorten mxs1585
The test description talks about putting the master into maintenance mode
but it spends most of the time putting slaves into maintenance mode. To
make the test more precise (and fast) the test can be reduced to blocking
the most often used slave and the master. The iteration count can also be
lowered from five to two to get at least two cycles of maintenance mode.
2018-11-06 15:08:36 +02:00
2fa37aa18a MXS-2106: Add test case
Added a test case that reproduces the problem and verifies that it is
solved.
2018-11-05 13:37:29 +02:00
348c86d22b Rewrite change_user test
Rewrote the test and expanded the test coverage. This unveiled a bug in
readconnroute where the connection isn't closed when a COM_CHANGE_USER
fails.
2018-11-05 13:37:21 +02:00
49587d78d8 Make sure created event is dropped before exiting
Tests should clean up after themselves and in the case of this event, it
can cause problems with other tests.
2018-11-04 21:09:13 +02:00
e5d6e5329a Format source code
Formatted all of the source code that was not accordance with the coding
style. This was caused by merges from 2.2 into 2.3.
2018-11-01 14:05:15 +02:00
80b23b428a Remove obsolete tests
Removed the tests obsoleted by the sanity_check test case. This shortens
the test time by about a minute and a half and removes about 2500 lines of code.
2018-11-01 11:45:49 +02:00
ee069ac45c MXS-2131: Add sanity check test
The sanity check replaces several old regression tests and provides a
quick test for checking mainly the readwritesplit routing behavior. It
also checks some of the connection counts and runs queries that once
caused a crash.

The set of tests that the sanity check obsoletes is:

    bug422
    bug469
    bug448
    bug507
    bug509
    bug634
    bug694
    bug669
    bug711
    mxs127
    mxs47
    mxs682_cyrillic
    mxs957
    mxs1786_statistics
    rwsplit_read_only_trx
2018-11-01 11:45:49 +02:00
906d8cee5b Format all files
Formatted all files with uncrustify.
2018-10-31 09:46:02 +02:00
7deed35587 Merge branch '2.2' into 2.3 2018-10-31 09:03:09 +02:00
ceb4a18f59 Enable query_retries for mxs1961_standalone_rejoin
This should help prevent network disconnections and make the test more
stable. If the connection is lost, the automatic failover is disabled and
the test will fail.
2018-10-30 18:43:37 +02:00
d972c1cd37 Fix replication before syncing slaves in mxs1743_rconn_bitmask
This might help solve the problem where the test hangs when the slaves are
synced.
2018-10-30 18:43:37 +02:00
471cd8f0ef Increase timeouts for mxs431
The test appears to have timed out a few times when creating the
databases.
2018-10-30 18:43:37 +02:00
31859ee486 Remove ses_bigmem test
The test doesn't work when ASAN is used as it increases the memory use of
the process. With the addition of more caches in 2.3, the test is also
more likely to fail. Due to the test being quite useless with ASAN, it is
better to remove it.
2018-10-30 18:43:37 +02:00
ce35b0d541 Merge branch '2.2' into 2.3 2018-10-30 14:16:33 +02:00
93b9ed744f MXS-2111: Use authentication_string when password is empty
If the password field in mysql.user is empty, it is possible that the
actual password is stored in the authentication_string field. Most of the
time this happens due to MDEV-16774 which causes the password to be stored
in the authentication_string field.

Also added a test case that verifies the problem and that it is fixed by
this commit.
2018-10-30 12:45:36 +02:00
7e21e3aedd MXS-2115: Fix handshake version string
The intention was to send the lowest backend version string automatically
to the client instead of the default handshake version. This did not work
as the service version string was used instead of the server version.
2018-10-30 12:45:23 +02:00
4d8a95d041 Merge commit '262f1d7e471bacca6b985ec3f2cd5cb76d6e2584' into 2.3 2018-10-26 12:44:57 +03:00
6d00dbfc92 Fix mxs2043_select_for_update
Explicitly define the host of the user being created and sync
replication after it.
2018-10-19 15:18:16 +03:00
0e2e74d1e1 MXS-2090 Extend test program
Now the same tests are run, first using GTID replication, then
file + position replication.
2018-10-19 08:03:11 +03:00