9932 Commits

Author SHA1 Message Date
Markus Mäkelä
33cb080e16
Add 2.2.3 release notes
Added release notes for MaxScale 2.2.3.
2018-02-20 21:37:15 +02:00
Markus Mäkelä
f3e00431de
Fix MXS-1418 regression
If a server is removed from a service, readconnroute will not verify that
the server it is connected to is still the same root master. This fixes
the regression of MXS-1418.
2018-02-20 15:35:52 +02:00
Esa Korhonen
60d57aee61 Compile mariadbmon.h as C++ 2018-02-20 11:14:21 +02:00
Esa Korhonen
b9d80f6061 Use dedicated header in NDBClusterMon
NDBClusterMonitor used the MariaDBMonitor header instead of its own.
2018-02-20 11:09:04 +02:00
Markus Mäkelä
db9169be08
Add note about CDC connector installation
The documentation for the CDC Connector now mentions how it can be
installed as a package.
2018-02-20 09:59:06 +02:00
Markus Mäkelä
e56aedb85f
Reset failures if auto_failover is disabled
When auto_failover has been disabled due to failure to perform automatic
failover, the test should reset the number of failures. Resetting it
before the check for the log message allows the test to still fail if the
message is missing.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
a608b95414
MXS-1656: Add simple test case
Test that `list servers` works with both monitored and unmonitored
servers. The test doesn't check that the GTID is present as the test setup
uses file and position based replication.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
d133ebf32d
Remove ANSI color codes when --tsv is defined
When TSV output is requested, the output should not contain the ANSI color
codes. This appears to be a "feature" of the table generation library but
it is quite simple to work around.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
5806a27f9a
MXS-1656: Request each monitor only once
When the servers were iterated, each related monitor was requested. This
caused as many requests for monitors as there are servers.

By creating a set of unique monitor names and requesting them once, we
avoid the redundant requests from the monitor.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
f4af4fa038
MXS-1656: Rename misleading functions
The function getResource had two different implementations that did very
different things. The newer version, that returns the raw JSON object that
represents a resource, was renamed to getJson.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
ee3612da42
MXS-1656: Add GTID field to list servers
Added the `GTID` field to make it easier to track GTID values of the
servers. This is done by requesting the related monitors for each server
and injecting an extra parameter into the server resource.
2018-02-20 09:59:05 +02:00
Markus Mäkelä
558ea4babe
MXS-1656: Split resource collection functions into smaller parts
Split the getCollection function into smaller, reusable parts. This is
needed to display the GTID information in `list servers`.
2018-02-20 09:59:03 +02:00
Johan Wikman
fd4fd4eead MXS-1674 Add worker load calculation
By definition, the load is calculated using the following formula:

  L = 100 * ((T - t) / T)

where T is a time period and t the time of that period that the worker
spends in epoll_wait(). So, if there is so much work that epoll_wait()
always returns immediately, then the load is 100 and if the thread
spends the entire period in epoll_wait(), then the load is 0.

The basic idea is that the timeout given to epoll_wait() is adjusted
so that epoll_wait() will always return roughly at 10 seconds interval.
By making a note of when we are about to enter epoll_wait() and when we
return from it, we have all the information we need for calculating the
load.

Due to the nature of things, we will not be able to calculate the load
at exact 10-second boundaries, but it will be pretty close. And the load
is always calculated using the true length of the period.

We will then calculate 1 minute load by averaging the load value for 6
consecutive 10-second periods and the 1 hour load by averaging the load
value of 60 consecutive 1 minute loads.

So, while the 10-second load represents the load of the most recently
measured 10-second period (and not the load of the most recent 10
seconds), the 1 minute load and the 1 hour load represents the load of
the most recent minute and hour respectively.
2018-02-20 09:18:43 +02:00
Johan Wikman
6c6baebc65 Merge branch '2.2' into develop 2018-02-19 13:25:19 +02:00
Johan Wikman
145ab64a4a Add release date 2018-02-19 12:57:05 +02:00
Markus Mäkelä
bce5627ee3
Fix out-of-bounds read on invalid query message
When the parsing of a query failed, the message would treat the parameter
as a string as the printf format was `%*s` instead of `%.*s`.

The manpage of printf states the following about the precision specifier:

    ... or the maximum number of characters to be printed from a string
        for `s` and `S` conversions.

This means that the field length specifier is somewhat meaningless for
strings.
2018-02-16 20:49:27 +02:00
Johan Wikman
350eaf0e90 Add complete set of atomit_store-operations 2018-02-16 15:06:24 +02:00
Markus Mäkelä
71c6f4db4e
Rename the keepalived HA tutorial
Renamed the tutorial to MaxScale Failover with Keepalived and MaxCtrl.
2018-02-16 09:02:06 +02:00
Markus Mäkelä
6302bcf834
Explicitly list the features disabled in passive mode
The current list contains the failover, rejoin and monitor scripts.
2018-02-16 09:02:03 +02:00
Johan Wikman
5665ecc591 Merge branch '2.2' into develop 2018-02-15 16:33:36 +02:00
Johan Wikman
d1465e03c3 Update release notes of 2.2.2 2018-02-15 15:04:41 +02:00
Esa Korhonen
13dea56c2d Add instructions on setting MaxScale passive/active to Keepalived tutorial 2018-02-15 14:54:55 +02:00
Markus Mäkelä
3c153291f2
Merge branch '2.1' into 2.2 2018-02-15 14:23:48 +02:00
Markus Mäkelä
b1300fdb01
Sync slaves after creating new users
After the users in the local_address test are created, the slaves need to
be synced to make sure that users have replicated to all servers.
2018-02-15 14:20:08 +02:00
Markus Mäkelä
1042b861bb
MXS-1669: Fix load average tracking
The output of `show threads` could have a negative historic thread load
average that could be explained by the overflow of the signed 32-bit
integer used to count the number of samples.

The time that each thread started to process an event for a DCB used an
old value that is no longer used. Updating this to DCB::last_read retains
the 2.0 behavior.
2018-02-15 11:18:22 +02:00
Markus Mäkelä
11a7669df4
MXS-1537: Add API overview to CDC Connector documentation
The overview goes over the main functions of the Connector and Row
classes.
2018-02-15 11:18:01 +02:00
Esa Korhonen
754d80da75 Do not auto_rejoin if maxscale is passive 2018-02-14 17:30:02 +02:00
Johan Wikman
67834ca433 Merge branch '2.1' into 2.2 2018-02-14 15:44:05 +02:00
Johan Wikman
9b9e7121c3 Merge branch '2.0' into 2.1 2018-02-14 15:43:11 +02:00
Markus Mäkelä
4853fb0c64
Prevent double free of rerouted queries
When the routing of a queued query fails, the route_stored_query function
extract the SQL from and frees the already freed buffer.
2018-02-14 14:47:03 +02:00
Markus Mäkelä
5941f9d3b3
Silence debugging commands
If verbose mode is not enabled, the exact commands don't need to be
printed.
2018-02-14 14:47:03 +02:00
Markus Mäkelä
3b2ec4ab5a
Change references from MySQL to MariaDB
A few were missed when the renaming was done. Also renamed the file to
mariadbmon.cc.
2018-02-14 14:47:03 +02:00
Johan Wikman
558fdc1875 MXS-1644 Do not refresh users if max connections is reached
According to MXS-1644 the refreshing of users may cause a crash.
In that particular case, the refreshing is triggered by the
authentication failing due to the user having hit the
'max_user_connection' limit of the server.

That is, refreshing the users in the situation is never going to
change the end-result. With this change, the users will not be
refreshed in that case and hopefully the crash will be avoided.

Note that this is something of a workaround as the crash could not
be repeated and the refreshing of the users should obviously not
ever cause MaxScale to crash.
2018-02-14 13:50:29 +02:00
Markus Mäkelä
f3a77f228c
Update 2.2 upgrading document and release notes
Listed changes to MaxCtrl and the CDC connnector to release notes. Added a
note into the upgrade document about the beta versions of the MaxCtrl
client.
2018-02-13 16:26:27 +02:00
Markus Mäkelä
a6a73f8c29
MXS-1537: Move CDC Connector documentation
Placed the CDC Connector documentation in the main documentation directory
under the Connector directory. Added a link into the
Documentation-Contents.md document.
2018-02-13 16:26:27 +02:00
Markus Mäkelä
3f0ce53ae3
Remove dead links
The documents they point to don't exist.
2018-02-13 16:26:27 +02:00
Johan Wikman
f6c8358597 Update release notes 2018-02-13 15:20:53 +02:00
Markus Mäkelä
5716f0b210
Add support for self-signed certificates to MaxCtrl
MaxCtrl now supports explicit paths for certificates and optional server
certificate verification. This allows testing by using a self-signed
certificate with the server certificate verification turned off.
2018-02-13 14:54:32 +02:00
Markus Mäkelä
8e4c6a9eee
Use HTTPS also for pings
If HTTPS requests are used, the pings should also be done with HTTPS.
2018-02-13 12:55:34 +02:00
Markus Mäkelä
2e920af845
Change expected result of mysqlmon_rejoin_bad2
Instead of the current master rejoining to the diverged master, the
current master should remain as the master server. This behavior should be
explained by the extra GTID event injected by the failover process.
2018-02-13 11:35:13 +02:00
Markus Mäkelä
45ad6f943f
Validate master data inside transaction
The insertion and subsequent read of the data into the master in
`generate_traffic_and_check` will now be done inside a transaction. This
keeps the behavior consistent with the `check` function that only inserts
one row.
2018-02-13 11:35:12 +02:00
Johan Wikman
049606de15 Remove document on HA with Corosync/Pacemaker 2018-02-13 11:13:55 +02:00
Johan Wikman
35402557d7 In the documentation, state that hintrouter is beta 2018-02-13 08:43:46 +02:00
Johan Wikman
b468f2f639 Check for failover turned off if failover stress tests fails
If there are no masters at the end of the test, it suggests the
auto failover has been turned off. Check that.
2018-02-12 16:30:43 +02:00
Markus Mäkelä
062da5c956
Remove master count assertion in mysqlmon_failover_stress
The assertion can be triggered if failover has failed. This is expected
behavior if the master has executed events that the slaves haven't
received.
2018-02-12 16:01:07 +02:00
Timofey Turenko
f7857518f3
Mxs 1140 keepalived (#166)
add keepalived test
2018-02-12 15:49:07 +02:00
Esa Korhonen
ba821d0aff Add mention of external master to 2.2.2 release notes 2018-02-12 14:59:00 +02:00
Johan Wikman
f388e2f838 Merge branch '2.2' into develop 2018-02-12 14:00:40 +02:00
Johan Wikman
5c10d0ae92 Merge branch '2.1' into 2.2 2018-02-12 14:00:08 +02:00
Johan Wikman
cd1604f915 Merge branch '2.0' into 2.1 2018-02-12 13:44:51 +02:00