13931 Commits

Author SHA1 Message Date
Esa Korhonen
45ed3e085f Merge branch '2.3' into 2.4 2019-08-14 17:40:30 +03:00
Johan Wikman
c220ab3d9b MXS-2626 Update Clustrix monitor documentation 2019-08-14 15:41:55 +03:00
Markus Mäkelä
16cc3cd64b
Fix negative expected response count on trx rollback
The expected reply count should only be decremented on success.
2019-08-14 14:50:34 +03:00
Esa Korhonen
72ce2d2bc1 MXS-2633 Fix PAM authentication support with server version 10.4
The new server pam plugin does not always send the first password prompt with the
AuthSwitchRequest-packet. In this case the server expects the client (MaxScale) to
just send the password immediately. MaxScale now checks the length of the packet,
sending the password if the packet is short. This works with both old and new server
versions.
2019-08-13 17:15:45 +03:00
Esa Korhonen
b6ee5d104d MXS-2544 Test role support in PAM authenticator 2019-08-12 18:23:34 +03:00
Marko
8ce6a679be Merge branch '2.3' into 2.4 2019-08-09 19:44:46 +03:00
Marko
5389e9e252 MXS-2592 Add documentation on session_trace 2019-08-09 19:36:24 +03:00
Marko
5899556d89 MXS-2592 Enable runtime configuration of session_trace 2019-08-09 19:36:24 +03:00
Markus Mäkelä
bf551c5b1e
Merge branch '2.3' into 2.4 2019-08-09 03:01:00 +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
27f11df700 Merge branch '2.3' into 2.4 2019-08-08 08:07:59 +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ä
d3e199ff1d
Use old default parameter definitions in config2.cc
This prevents problems when 2.3 is merged into 2.4 and it contains new
common parameters with defaults.
2019-08-05 15:06:25 +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
658aae6b6c Merge branch '2.3' into 2.4 2019-08-02 15:50:39 +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
01427e32ec Merge branch '2.3' into 2.4 2019-08-02 10:03:34 +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
b01ff8a09b Merge branch '2.3' into 2.4 2019-08-01 16:11:36 +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
b5b2acd30e Update 2.3 maintance release 2019-08-01 10:46:25 +03:00
Johan Wikman
b49efa641e Update 2.3 changelog and add 2.3.10 release notes 2019-08-01 10:46:25 +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
Esa Korhonen
1514a77345 Improve main thread detection
Now properly checks if configuration and diagnostics functions are ran in either
main() or in the admin worker. This is useful for debugging and enforcing
thread safety.

Also, monitors are now started and stopped in the admin worker.
2019-07-31 12:36:05 +03:00
Markus Mäkelä
9d0c6b908a
MXS-2603: Treat WSREP errors as ignorable errors
When a query returns a WSREP error, most of the time it is not something
the client application is expecting. To prevent this from affecting the
client, it can be treated the same way a transaction rollback is treated:
ignore the error and try again.
2019-07-30 13:53:23 +03:00
Markus Mäkelä
45aa40c10a
Fix RWBackend state tracking with multi-result queries
If a query returned multiple resultsets and the connection was broken
between the resultsets, the backend would not know that parts of the
response were already sent. This is caused by the cyclic nature of the
state machine when multi-result responses are being processed.

To fix the problem, the result size is tracked to know how many bytes have
been sent to the client. This is a backport of the
MySQLProtocol::Result::size from 2.5(develop).
2019-07-30 13:53:23 +03:00
Johan Wikman
ed84f29fca MXS-2612 Free routing worker local data
When a RoutingWorker is destructed, all existing local data will
unconditionally be destroyed.

The case in point is the vector<SFilterDef>s that are held as routing
worker local data by the Service. Unless the local data is deleted, the
filter defs will not be deleted at shutdown.

This is somewhat brute-force (but good to have in place nonetheless) as
the deletion of the local data should be done by the Service and before
the routing worker thread has exited.
2019-07-30 13:01:12 +03:00