12456 Commits

Author SHA1 Message Date
Johan Wikman
9dce8c0c56 MXS-2163 Modify Clustrix auth query slightly
- Format specifyer was missing
- Now root shows up properly
2019-01-07 12:57:13 +02:00
Markus Mäkelä
f0f9c21d1c
Merge branch '2.3' into develop 2019-01-07 10:54:42 +02:00
Markus Mäkelä
0859f3caff
Merge branch '2.2' into 2.3 2019-01-07 10:33:34 +02:00
Markus Mäkelä
2172c4ca85
MXS-2048: Fix dbfwfilter module command documentation
Fixed the command names.
2019-01-06 13:17:32 +02:00
Markus Mäkelä
bc346422fb
Add minimal CDC client
Added a minimal CDC client application that uses the CDC connector
library. This is mainly intended for manual testing so it is built using
the accompanying Makefile instead of being a part of the CMake system.
2019-01-06 13:05:42 +02:00
Markus Mäkelä
46bea87ff6
MXS-2238: Fix reading of large Avro schemas
The schemas were read incorrectly which resulted in large schemas having
multiple newlines in them.
2019-01-06 13:05:42 +02:00
Markus Mäkelä
7b6ae4bc13
Add 2.2.19 release notes
Generated 2.2.9 release notes and added them to the changelog.
2019-01-06 13:05:42 +02:00
Markus Mäkelä
a4540b5cee
Add note about weightby deprecation
The documentation now states that the parameter was deprecated.
2019-01-06 13:01:37 +02:00
Markus Mäkelä
8c437c6440
Fix crash in galeramon
An std::string was assigned a null value which will cause a crash.
2019-01-04 12:00:48 +02:00
Markus Mäkelä
2fde4ba1b3
Fix MXS_ABORT_IF_FALSE macro
The macro needs parentheses around the expression, otherwise the negation
is applied in the wrong place.
2019-01-04 11:26:09 +02:00
Esa Korhonen
cf9ac9004e Fix compilation error
A variable had the same name as a type, which confused some compilers.
2019-01-04 10:40:11 +02:00
Markus Mäkelä
fe4c848079
Use direct access into strings while canonicalizing
The process of appending to a std::string always includes a size check in
case the internal storage needs to expand. Given that we know a
canonicalized version of a query string is never larger than the original
string and that we pre-allocate enough memory to cope with the worst-case
scenario, the extra logic in std::string::push_back is unnecessary and an
extra cost. Writing directly into the string avoids this cost and improves
the performance.
2019-01-03 21:37:11 +02:00
Markus Mäkelä
ad5b244313
Optimize canonicalization code
Switched from default character type functions to ones that use lookup
tables. Eliminated the internal state and replaced with in-place iteration
of the query. Added code to allow single-lookup detection of normal
characters.
2019-01-03 21:37:11 +02:00
Markus Mäkelä
c8d4052aec
Improve release note generation script
The script can now be run from outside of the directory it is contained
in.
2019-01-03 13:34:10 +02:00
Markus Mäkelä
1b0b32cbe8
Update release documentation
Updated the instructions on how releases are made.
2019-01-03 13:07:05 +02:00
Markus Mäkelä
87c3b1d25b
MXS-2234: Extend persisted config file log message
The log message should now contain enough information to more easily debug
any configuration issues that result from updating the main config file
after runtime changes have been done.

Also fixed the theoretical race condition in detection of persisted
configuration files by only checking for their existence once.
2019-01-03 12:48:30 +02:00
Esa Korhonen
ca9c52944b MXS-2220 Use std::string for protocol and authenticator fields 2019-01-03 12:13:15 +02:00
Esa Korhonen
40485d746c MXS-2220 Change server name to constant string 2019-01-03 12:13:15 +02:00
Esa Korhonen
5fc2c1f49c MXS-2220 Store server ports as integers and modify them in methods 2019-01-03 12:13:15 +02:00
Esa Korhonen
09aa54720d MXS-2220 Read server version using public methods
Version related fields have been removed from the public class.
2019-01-03 11:23:14 +02:00
Markus Mäkelä
9adbd2f8f0
Cache the local server statistics object
By storing the server statistics object in side the session, the lookup
involved in getting a worker-local value is avoided. Since the lookup is
done multiple times for a single query, it is beneficial to store it in
the session.

As the worker-local value is never deleted, it is safe to store a
reference to it in the session. It is also never updated concurrently so
no atomic operations are necessary.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
1fa3b133c7
Make keepalive ping checks more efficient
The code now only checks the need for a keepalive ping once every
keepalive interval. Reduced the number of mxs_clock calls to one so that
all servers use the same value.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
5420bf618d
Allow systemd notifications from all member processes
By default the notifications are only allowed from the main process or any
child process that systemd finds. When the main process has not yet been
detected by systemd but MaxScale sends a notification, an error is logged
into the system journal. To prevent this, notifications from all member
processes should be allowed.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
050ce7f1a3
MXS-2200: Add runtime handling for all global parameters
All global parameters are now handled by the runtime configuration
modification code. The parameters that are trivial to update can now be
updated at runtime. All other global parameters cause a new error message
to be returned stating that the parameter in question cannot be modified
at runtime.

Also updated the list of modifiable parameters in MaxCtrl. This list
should not be stored in MaxCtrl and should be created by MaxScale at
runtime.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
88f234fdcd
MXS-2214: Fix object names in documentation
The object names now always use a valid and supported form.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
ee98900685
MXS-2200: Extend REST API tests
Added test cases for static and unknown global parameters.
2019-01-03 09:37:59 +02:00
Markus Mäkelä
26da72a41f
Merge branch '2.2' into 2.3 2019-01-03 09:23:16 +02:00
Markus Mäkelä
8f0e4a3034
MXS-2232: Fix version string prefix check
The prefix was always added even when the original version would've been
acceptable. For example, a version string of 5.5.40 would get converted to
5.5.5-5.5.40 which is quite confusing for older client applications.
2019-01-02 19:29:48 +02:00
Markus Mäkelä
04dd05b262
MXS-2231: Move TLS handshake code into MariaDBClient
The code is now in the correct place and TLS connections with all
authenticators should now work.
2019-01-02 19:29:41 +02:00
Markus Mäkelä
d48c17fd08
MXS-2231: Add Kerberos+SSL test case
Added a test case that uses Kerberos services with SSL enabled listeners.
2019-01-02 19:27:14 +02:00
Markus Mäkelä
edd03e950f
MXS-2209: Use compound roles only with 10.2.15+
Due to MDEV-15556 and MDEV-15840 recursive CTEs can't be reliably used
with older 10.2 versions. To prevent problems, only use the query that
extracts composite roles with newer versions.
2019-01-02 19:27:14 +02:00
Esa Korhonen
d1b098d3b0 MXS-2200 Store server version string and type in internal class 2019-01-02 12:53:52 +02:00
Timofey Turenko
038f4d63e1
Mxs 2226 long test (#186)
* add possibility to run named test

* remove sysbench_dir

* remove unsupported in 1.0 sysbench options

* exculed ReadConnRouter sysbench test

* fix sysbench table name
2018-12-31 17:27:04 +02:00
Markus Mäkelä
54ae7119cf
Fix binlogrouter master reconnection
The reconnection attempt to the master won't work if users aren't loaded
before it.
2018-12-31 10:39:57 +02:00
Markus Mäkelä
630165e52b
Fix closing of pooled DCBs
DCBs can now have a null session pointer and if they do, they are in the
persistent pool. The no-null-session assertions are no longer valid but
with a reorganization of the pooling code to only use file descriptors,
the assertions can be added back.
2018-12-29 19:16:34 +02:00
Markus Mäkelä
4ab25bcd1c
Fix schemarouter duplicate database detection
The detection wouldn't work if the database had no tables.
2018-12-28 11:33:43 +02:00
Markus Mäkelä
3b150ad4b2
Fix binlogrouter use of DCBs
The dcb_connect function requires that the client DCB has a remote
address.
2018-12-28 10:13:24 +02:00
Markus Mäkelä
4d0a40ef9f
Add missing pointer initialization
The change from SRWBackend to RWBackend* had some side effects, namely the
missing automatic initialization into zero values.
2018-12-28 08:19:23 +02:00
Markus Mäkelä
459eb003de
MXS-2196: Don't start if listeners fail to start
The old behavior is to not start MaxScale if any listeners fail to
bind. This behavior is convenient when there are conflicts with other
applications so it should remain. This change prevents the internal
service restarts from functioning which might have already been broken.

The "restarting" of services after a failure to bind to an interface is
somewhat questionable. Almost no transient errors are expected at startup
with the exception of running out of sockets. This should probably be the
only case when the internal service restart is done and in other cases it
causes more harm than good.
2018-12-27 15:12:52 +02:00
Markus Mäkelä
6206abde3e
Update Server version in server_set_version
The new method was not called by the old function.
2018-12-27 14:44:13 +02:00
Johan Wikman
1fa0144b0b Fix broken http test 2018-12-20 09:32:51 +02:00
Esa Korhonen
eacf88f6a5 MXS-2220 Add server version and type information struct
The old fields are still used.
2018-12-19 13:18:16 +02:00
Johan Wikman
115feab946 MXS-2164 Add skeleton Clustrix monitor 2018-12-18 15:17:09 +02:00
Johan Wikman
910777efbc MXS-2208 Address review comments
Also report errors in more detailed manner.
2018-12-18 15:16:45 +02:00
Johan Wikman
3eca3ff7dc MXS-2208 Add init/finish functions for mxb::http
Init/finish needed, as curl otherwise will leak memory.
2018-12-18 15:16:45 +02:00
Johan Wikman
0d733bb1bb MXS-2208 Implement synchronous GET in terms of asynch 2018-12-18 15:16:45 +02:00
Johan Wikman
847f53b21b MXS-2208 Introduce asynchronous GET
A multi HTTP GET can now be performed so that the caller
drives the polling of results.

This can now be used so that inside a monitor worker, the delays
are handled using delayed calls. Consequently, the monitor worker
event loop can remain responsive even though the Clustrix nodes
are being polled.
2018-12-18 15:16:45 +02:00
Johan Wikman
38a0d6a2df MXS-2208 If no sockets, then we use timeout
If no sockets, then we use timeout; not the other way around.
2018-12-18 15:16:45 +02:00
Johan Wikman
1d338f3c4a MXS-2208 Add synchronous multi GET
Now possible to GET multiple URLs in one go. Behind the scenes
the getting is done asynchronously and in parallell.
2018-12-18 15:16:45 +02:00
Johan Wikman
da3742324a MXS-2208 Now use trim() from maxbase 2018-12-18 15:16:45 +02:00