Commit Graph

9620 Commits

Author SHA1 Message Date
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
f7857518f3 Mxs 1140 keepalived (#166)
add keepalived test
2018-02-12 15:49:07 +02:00
ba821d0aff Add mention of external master to 2.2.2 release notes 2018-02-12 14:59:00 +02:00
5c10d0ae92 Merge branch '2.1' into 2.2 2018-02-12 14:00:08 +02:00
cd1604f915 Merge branch '2.0' into 2.1 2018-02-12 13:44:51 +02:00
9b03cf46d1 qc_sqlite and qc_mysqlembedded marked as GA 2018-02-12 13:40:26 +02:00
3310af1dd9 Remove 2.1.14 release notes from 2.2 2018-02-12 13:34:54 +02:00
7ce0de3e18 Update 2.2.2 Release notes 2018-02-12 13:34:54 +02:00
d93907d6a8 Increase timeouts for slave synchronization
It is possible that replication is severely lagging when slaves are being
synchronized. This means that a timeout of 120 seconds might not be
enough.
2018-02-12 13:31:10 +02:00
eab4ec1768 Add component specific package descriptions
The package descriptions, summaries and licenses now use a generic
mechanism. This makes it easier to add new components that only include
small parts or use a different license.

Also updated the descriptions, the license versions and package summaries
for the main packages.
2018-02-12 13:31:10 +02:00
f252f25624 Move the CDC Connector into its own package
The connector is now in its own package to make its installation easier.
2018-02-12 13:31:10 +02:00
b94f3b8792 Failover: do not check cluster stabilization if no slaves
Caused debug assert.
2018-02-12 12:37:41 +02:00
57b0f69ca2 Fix CentOS 6 build failure
CentOS 6 requires __STDC_LIMIT_MACROS to be defined before <stdint.h> is
included to expose INT32_MAX and others.
2018-02-12 11:51:39 +02:00
b8d3da4968 Add error tolerance to "servers_no_promotion"
Previously, if the list contained servers that were not monitored by
the monitor yet were valid servers, an error value would be returned
and the monitor failed to start.

With this update, the non-monitored servers are simply ignored when
forming the final list.

Also, added printing of the list to diagnostics.
2018-02-12 10:49:28 +02:00
faaf43ff39 Add gtid to monitor diagnostics, clean up formatting
Gtid:s are now queried every monitor loop.

dignostics() no longer prints slave related info if the server has
no slave connection.
2018-02-10 12:32:56 +02:00
eeb3fa65ae Add description on external master support to documentation 2018-02-10 12:26:47 +02:00
2bd1d4ab88 Documentation: add note on switchover command and log_slave_updates 2018-02-10 12:26:47 +02:00
e346968e0e Merge branch '2.1' into 2.2 2018-02-10 08:28:11 +02:00
4714ca7b32 fix tables in README.md 2018-02-09 21:58:10 +02:00
41935fb6d3 add README.md for mdbci operations 2018-02-09 21:58:10 +02:00
2a93cfac8c fix big and big15 templates 2018-02-09 21:58:10 +02:00
a6c97bea2a Update README.md 2018-02-09 21:58:10 +02:00
bdac232811 Update README.md 2018-02-09 21:58:10 +02:00
b1ba30a21e Fix relative links in the README 2018-02-09 21:58:10 +02:00
19b6de6192 Fix README syntax 2018-02-09 21:58:10 +02:00
c7d73f2869 Add README for mdbci build scripts 2018-02-09 21:58:10 +02:00
b4760c5bbe MXS-1661 Introduce 'users_refresh_time'
It is now possible to explicitly specify how frequently MaxScale
may refresh the users of a service.
2018-02-09 13:33:17 +02:00
ae160f3ff2 MXS-1661 Now only the time affects the reloading of users
Now the users will be reloaded at most once during each
USERS_REFRESH_TIME period. Earlier they could be reloaded at
at most USERS_REFRESH_MAX_PER_TIME times, which in practice meant
that with repeated unauthorized login attempts they were reloaded
N times in rapid succession, without the situation being likely to
change in between.
2018-02-09 13:33:17 +02:00
b23ad6d2ef MXS-1661 Turn error into warning and suppress logging
The error regarding the refresh rate having been exceeded

    error: [RWSplit] Refresh rate limit exceeded ...

has been turned into a warning. Further, the warning will be
logged at most once per refresh period that currently is 30s.
2018-02-09 13:33:17 +02:00
816983691a MXS-1660 Turn client hostname lookup failure into a warning
This is used only in case of everything else fails and this lookup
is not unlikely to fail if the client comes from some machine on
an internal network.
2018-02-09 12:03:13 +02:00
83ce603e3e Fix CentOS 6 build failure
The __sync load builtins do not work with pointers to constant variables.
2018-02-09 09:19:46 +02:00
a0d9c7da74 External master server support for failover/switchover
If the master is replicating from an external master, the monitor will save the
host:port of the external server. During demotion, the old master stops the external
replication while the new master begins it. Also, any commands that would add
to gtid have to be omitted when an external master is in play.
2018-02-08 18:44:08 +02:00
5a33a5a013 Merge branch '2.1' into 2.2 2018-02-08 18:39:45 +02:00
716f39bc8b local_address: Add directories to path 2018-02-08 18:31:23 +02:00
e641de2930 Fix cdc_datatypes
The test did not correctly handle quoted or NULL value comparisons.
2018-02-08 16:59:00 +02:00
036a4cedcf MXS-1653: Add test case
Added test case that reproduces the problem.
2018-02-08 16:59:00 +02:00
fa37198da1 MXS-1653: Fix hang on preparation of BEGIN
When a BEGIN statement is prepared using the binary protocol, it returns a
single OK packet. Due to a bug in the code that deals with multi-statement
results and EOF packets, the response was never sent to the client.

Also added back the error messages of failed session commands to the INFO
level. This way it's still possible to see why a session command fails but
the log isn't flooded by them in normal usage.
2018-02-08 16:59:00 +02:00
5f4c723fef Fix typo in QLAfilter documentation
The readconnroute module name was written as readconnrouter, with an extra
`r` at the end.
2018-02-08 15:23:39 +02:00
91f4372478 Update mxs280_select_outfile
The error message is no longer logged as it wasn't a real error.
2018-02-08 14:04:16 +02:00
b91fa7d395 Merge remote-tracking branch 'origin/2.2' into 2.2 2018-02-08 13:44:40 +02:00
b34e44d34a Merge branch '2.1' into 2.2 2018-02-08 13:43:52 +02:00
a6fc2d3f88 Add missing <string> header
load_utils.cc used std::string without including the header.
2018-02-08 13:40:11 +02:00
ed28d986e9 Fix debug assertion when no master is present
If no master is present, the debug assertion would dereference a NULL
pointer.
2018-02-08 13:33:31 +02:00
155fcd08df Do not fail local_address test if only one IP available
Instead do as much as possible.
2018-02-08 13:15:34 +02:00
2a987716a8 Build tests by default
The tests are now built by default. This should make it easier for users
to verify that they have a working MaxScale.

Also made the building of test_parse_kill conditional like the rest of the
tests.
2018-02-08 12:48:56 +02:00
b2f17494ad Always build Connector-C
The connector is now unconditionally build from source.
2018-02-08 12:48:56 +02:00
b059d78a30 Fix master loss on split cluster
When four servers (A, B, C and E where E and A replicate from each other
and A is the master for B and C) form a cluster and only three of them (A,
B and C) are configured into MaxScale, a failover operation from A to B
(making B the current master) and a restart of A causes B to lose its
master status.

The following diagram illustrates the state of the cluster at the end of
the process described above.

      +----------------------+
      |        +---+         |
  +------------+ B <-+       |
+-v-+ |        +---+ |       |
| E | |              |       |
+-^-+ |  +---+     +-+-+     |
  +------+ A |     | C |     |
      |  +---+     +---+     |
      |                      |
      +----------------------+

The external server E was not correctly ignored in the replication
topology generation causing both A and B to be seen as the lowest slave
nodes in the tree. From a theoretical point of view this is the correct
interpretation as there are two distinct trees and neither of them
contains any true masters.

In practice, MaxScale should treat any servers that replicate from an
external master as root level master nodes. Doing this guarantees that they
are labeled as masters if they have slaves replicating from them.
2018-02-08 12:48:56 +02:00
2504ff19b3 MXS-1653: Fix slave session command processing
The responses of slaves that arrived before the master were always
compared to the empty value of 0x00. If the slave connection replied after
the master, the comparison was correct.

This commit introduces a map of slaves and their responses that
are handled once the master's response arrives.
2018-02-08 12:48:56 +02:00
bff4f05e3b Merge branch '2.1' into 2.2 2018-02-08 12:47:48 +02:00
458edb9b1d Do not crash if "127.0.0.1" is not present 2018-02-08 12:47:34 +02:00