12899 Commits

Author SHA1 Message Date
Marko
5899556d89 MXS-2592 Enable runtime configuration of session_trace 2019-08-09 19:36:24 +03:00
Markus Mäkelä
eda830c9f3
MXS-2609: Add master reconnection test case
The test case covers a few bugs that were fixed by the previous
commits. The first part of the test covers the case when master
reconnection fails while session command history is being executed. The
second part of the test makes sure exceeding the session command history
will prevent master reconnections from taking place.
2019-08-09 01:54:10 +03:00
Markus Mäkelä
1748e6599d
MXS-2609: Fix session command mixup on master failure
If a master failed during an ongoing session command history replay, it
would be treated as if a normal session command failed which would result
in the already executed session command being re-executed on all servers
at the wrong logical position.

To fix this, the history replay must be distinguished from normal session
command execution. When a connection replaying the history fails, the
query routing simply needs to be attempted again.
2019-08-09 01:54:09 +03:00
Markus Mäkelä
547236b7a4
MXS-2609: Store history size in Backend
When a connection is created, the size of the history that is about to be
replayed is known. Storing this and decrementing it each time a session
command is completed tells us when the Backend has finished replaying the
session command history. This can then be used to distinguish whether a
session command executed on a master should be retried or whether to
simply discard the connection.
2019-08-09 01:54:09 +03:00
Markus Mäkelä
8bc4e42f2d
Fix query queuing on session command execution
If session command execution during server reconnection caused a query to
be queued, the query would be put on the tail end of the queue. This would
cause queries to be reordered if the queue wasn't empty. The correct thing
to do would be to put the next pending query back at the front of the
queue.
2019-08-09 01:54:09 +03:00
Markus Mäkelä
bb6f9213d4
Fix debug assert on master reconnection
If a master reconnection occurred after the session command history was
disabled due to the limit being exceeded, a debug assertion would be hit
in prepare_target. This assert makes sure that a connection can be safely
created to the server which means that in release mode builds the session
state would be inconsistent on the new master.

As this is an unrecoverable situation, the session should stop immediately
even if delayed_retry is enabled. Currently the session will continue
until the delayed retry timeout is hit. This happens due to the fact that
the delayed retry mechanism handles all errors in a similar way.
2019-08-09 01:54:09 +03:00
Markus Mäkelä
9f6efef67a
MXS-2576: Update states atomically in csmon
This prevents false transient states from occurring.
2019-08-09 01:54:09 +03:00
Timofey Turenko
ab429c3202 Merge branch '2.3' of github.com:mariadb-corporation/MaxScale into 2.3 2019-08-08 23:12:16 +03:00
Timofey Turenko
284e5db68b Merge branch '2.3' of github.com:mariadb-corporation/MaxScale into 2.3 2019-08-08 23:11:44 +03:00
Timofey Turenko
910990115c add Docker to build VM temlates
Now Docker is installed to VM which are used to build Maxscale. It allows to run tests which require Docker without installing it
during build process.
2019-08-08 16:58:07 +03:00
Johan Wikman
2f40190555 Merge branch '2.2' into 2.3 2019-08-08 08:07:37 +03:00
Timofey Turenko
1ca15714f8 fix sles link creation 2019-08-07 20:06:31 +03:00
Timofey Turenko
2b0fe14676 fix sles link creation 2019-08-07 19:45:52 +03:00
Timofey Turenko
169fb256ed Create symlink for sles15
Currently build is executed for OpenSuse 15 and SLES15 repo is not available. To avoid
missing repo symlink sles -> opensuse is created
2019-08-07 16:02:40 +03:00
Timofey Turenko
bb43e6193e fix typo in copy_repos.sh 2019-08-07 16:00:12 +03:00
Timofey Turenko
5d0112c397 add sles directory creation 2019-08-07 15:41:18 +03:00
Timofey Turenko
2fa336d142 create symlink for sles15 2019-08-07 14:58:19 +03:00
Timofey Turenko
e2400f5799 Add scripts to create repository with all minor versions
Some users need repository with all versions of Maxscale for easy version selection and downgrating
2019-08-07 14:46:02 +03:00
Markus Mäkelä
fd72332ea4
Improve master failure error message
The message will now always contain the server name.
2019-08-05 12:48:19 +03:00
Johan Wikman
84a1578f4b Merge branch '2.3.11' into 2.3 2019-08-02 15:50:07 +03:00
Johan Wikman
f8150b776c Update 2.3.11 release date 2019-08-02 15:46:03 +03:00
Johan Wikman
83db2a4dc1 Update 2.3 maintenance release number 2019-08-02 09:54:27 +03:00
Johan Wikman
3635592228 Add 2.3.11 release notes and update 2.3 change log 2019-08-02 09:50:01 +03:00
Johan Wikman
110bc32b25 MXS-2621 Fix broken authorization SQL 2019-08-02 09:48:14 +03:00
Markus Mäkelä
15461c1f8e
MXS-2621: Add test case
The test reproduces the problem with lower_case_table_names.
2019-08-02 09:47:42 +03:00
Markus Mäkelä
527f9d3136
Rewrite open_close_connections
The test now uses standard library threads and lambda functions to make
the code simpler. Also made the test more robust by ignoring any errors
that are caused by the exhaustion of available client side TCP ports.
2019-08-01 16:50:19 +03:00
Johan Wikman
56fe86115a Merge branch '2.3.10' into 2.3 2019-08-01 16:08:27 +03:00
Johan Wikman
e1a730ed86 Update release date for 2.3.10 2019-08-01 16:06:26 +03:00
Johan Wikman
f06c2cbdaa Merge branch '2.3.10' into 2.3 2019-08-01 10:02:54 +03:00
Johan Wikman
8347a48b64 Update 2.3 maintance release 2019-08-01 08:32:30 +03:00
Johan Wikman
18169a17d9 Update 2.3 changelog and add 2.3.10 release notes 2019-08-01 08:24:57 +03:00
Johan Wikman
c592328ea2 MXS-2613 Access correct argument
The cache show-command accessed the wrong argument. That is why

    [maxadmin|maxctrl] call command cache show TheCache

did not work.
2019-07-30 12:29:01 +03:00
Marko
3ddcc49288 MXS-2592 Use the correct log level variable 2019-07-29 12:07:02 +03:00
Markus Mäkelä
dda02b45ee
MXS-2520: Do master replacement if it's possible
This allows a new master to be chosen regardless of the target server
type.
2019-07-29 10:26:30 +03:00
Marko
918a2964d5 MXS-2592 Add configuration for session specific in-memory log
When enabled each session will write log messages in the in-memory log.
If session ends in error this log is written to the actual log in disk.
2019-07-28 20:56:22 +03:00
Markus Mäkelä
b07ffdb2fa
Fix hang on transaction replay
The expected response counter was not decremented if a transaction replay
was started. This caused the connections to hang which in turn caused the
failure of the mxs1507_trx_stress test case.
2019-07-26 09:34:08 +03:00
Markus Mäkelä
9a7153dcec
Fix mysqlmon_multimaster
It failed to compile with a new-ish compiler as the output argument was
guaranteed to be null.
2019-07-26 09:10:47 +03:00
Markus Mäkelä
9171dbaad6
Replace trimEnd with trim
trimEnd was introduced in Node.js 10.0 which is not in the 6.0 version we
use.
2019-07-26 09:10:46 +03:00
Markus Mäkelä
f31f09fc66
Don't print errors with master_failure_mode=error_on_write
The errors are expeted and should not be logged.
2019-07-23 14:12:58 +03:00
Markus Mäkelä
12bd26398f
MXS-2486: Add missing schemarouter capabilities
The capabilities that the schemarouter declared were missing the
RCAP_TYPE_PACKET_OUTPUT which caused partial packets to be returned to it.
2019-07-23 09:57:53 +03:00
Markus Mäkelä
fbeb5d9c84
Always ignore server-internal databases
The mysql, information_schema and performance_schema databases should
always be ignored if found on multiple servers.
2019-07-23 09:38:29 +03:00
Markus Mäkelä
8e23a6cdb9
MXS-2607: Remove trailing spaces in MaxCtrl --tvs mode
As the TSV format uses tabs as delimiters, the trailing spaces would
acutally be interpreted as data.
2019-07-19 12:16:04 +03:00
Markus Mäkelä
146b940245
Dump statements on fatal signal
This should make it easier to figure out what is going on at the time of
the crash if statement collection is enabled.
2019-07-19 12:03:36 +03:00
Markus Mäkelä
e3b1eebb15
Update unit test configs
Removed some of the useless parameters, tuned some values and reordered it
to declare objects before they are referred to.
2019-07-19 12:03:36 +03:00
Markus Mäkelä
1ddcbc9ae1
Log error message on slave session command failure
If the slave's response differs from the master and the slave sent an
error packet, log the contents of the error. This should make it obvious
as to what caused the failure.
2019-07-18 17:58:22 +03:00
Markus Mäkelä
84f4688ebb
Fix readwritesplit response count assertion
The assertion in routeQuery that expects there to be at least one ongoing
query would be triggered if a query was received after a master had failed
but before the session would close. To make sure the internal logic stays
consistent, the error handler should only decrement the expected response
count if the session can continue.
2019-07-18 12:24:06 +03:00
Markus Mäkelä
f8ee11cf55
MXS-2606: Sort servers before loading users
By sorting the servers in descending order based on their role we make
sure that the users are loaded from a master if one is available.
2019-07-17 14:42:32 +03:00
Markus Mäkelä
f139991a2c
MXS-2559: Log source of loaded users
MySQLAuth now logs the server where the users were loaded from. As only
the initial loading of users causes a log message, it is still possible
for the source server to change without any indication of it.
2019-07-17 10:23:48 +03:00
Markus Mäkelä
3649efde0b
MXS-2605: Remove false debug assertion
The assertion doesn't count executed session commands and thus is not
reliable.
2019-07-16 21:45:36 +03:00
Markus Mäkelä
c878d796be
Merge branch '2.2' into 2.3 2019-07-16 12:59:03 +03:00