12279 Commits

Author SHA1 Message Date
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
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ä
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
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ä
35d31801bb
Merge branch '2.2' into 2.3 2018-12-17 23:52:56 +02:00
Markus Mäkelä
208a1d011e
Pre-allocate return value in get_canonical
Since we know the worst-case size of a canonical statement is the size of
the query string, we can reduce the number of memory allocations to one in
the get_canonical function.
2018-12-17 23:16:01 +02:00
Johan Wikman
e386dcba88 Merge branch '2.3.2' into 2.3 2018-12-17 09:33:40 +02:00
Johan Wikman
8b6022ee6d Fix link in 2.3.1 release notes 2018-12-17 09:33:22 +02:00
Johan Wikman
8725205873 Update version in license text 2018-12-17 09:33:22 +02:00
Johan Wikman
e2c52ecd19 Update version in license text 2018-12-17 09:14:36 +02:00
Johan Wikman
0b67a22add Merge branch '2.2.18' into 2.2 2018-12-13 11:01:30 +02:00
Johan Wikman
562bd0c3fb Update release date 2018-12-13 10:55:08 +02:00
Johan Wikman
bad8c03df9 Update version number 2018-12-12 13:04:07 +02:00
Johan Wikman
136c0c3062 Add release notes for 2.2.18 and update change log 2018-12-12 12:44:48 +02:00
Niclas Antti
f2a3a5737a MXS-2221 Fatal signal handling does not always create a core
Quick and simple fix, but this should be overhauled. See MXS-599.
2018-12-11 14:22:35 +02:00
Markus Mäkelä
48efa6d027 MXS-2213: Clear stored PS information
The information stored for each prepared statement would not be cleared
until the end of the session. This is a problem if the sessions last for a
very long time as the stored information is unused once a COM_STMT_CLOSE
has been received.

In addition to this, the session command response maps were not cleared
correctly if all backends had processed all session commands.
2018-12-11 13:54:10 +02:00
Markus Mäkelä
8b00a00ea7 MXS-2216: Use correct function in response processing
When a response to a prepared statement was processed, the number of EOF
packets was used to see whether the response was complete. This code used
a function that does not work with the special packet returned by a PS
preparation that is similar to an OK packet.

The correct method is to count the total number of packets in the
response.
2018-12-11 13:54:10 +02:00
Esa Korhonen
467231480f Merge branch '2.3.2' into 2.3 2018-12-05 13:27:39 +02:00
Esa Korhonen
a6cacbec17 Update MariaDBMonitor documentation
Updates troubleshooting section.
2018-12-04 18:05:38 +02:00
Johan Wikman
1a78f2ffbb Merge branch '2.2' into 2.3 2018-12-04 11:23:31 +02:00
Johan Wikman
87d2a45b20 MXS-2207 Fix the problem in qc_mysqlembedded 2018-12-03 16:03:51 +02:00
Johan Wikman
964180804c MXS-2207 Add test that reveals problem
With qc_mysqlembedded statements like

    SET STATEMENT ... FOR stmt;

are always classified as READ, although their type should be
that of stmt.
2018-12-03 15:59:43 +02:00
Johan Wikman
7872474595 Add missing bug fix to release notes 2018-12-03 15:30:47 +02:00
Johan Wikman
1f495dec99 Merge branch '2.3.2' into 2.3 2018-12-03 15:20:33 +02:00
Johan Wikman
cd95ca7092 Update 2.3.2 release date 2018-12-03 14:51:40 +02:00
Markus Mäkelä
6f934cb9d4
Merge branch '2.3.2' into 2.3 2018-11-30 12:05:29 +02:00
Markus Mäkelä
95d8ee9305
Extend maxctrl system test
The test now executes all commands present in MaxCtrl.
2018-11-30 12:05:14 +02:00
Markus Mäkelä
1126c687a4
Fix alloc-dealloc mismatch in qc_classify_as_json
The deleter for std::unique_ptr<GWBUF> was not included in that file which
caused it to be deleted with the default deleter. The same should apply to
std::unique_ptr<json_t> as well.
2018-11-29 11:25:28 +02:00
Markus Mäkelä
cb878f18b7
Update max_slave_connections documentation
Corrected the default value and added a more detailed explanation of what
the parameter does and how it affects client connections.
2018-11-29 08:47:11 +02:00
Johan Wikman
9b571566aa Fix crash in maxadmin show filter 2018-11-28 19:34:18 +02:00
Markus Mäkelä
7331549915 MXS-2188: Update target table in prepare_table
Passing the target table and create to the prepare_table function allows
the converter to update the internal variables.
2018-11-28 19:32:52 +02:00
Markus Mäkelä
1802151c62 Fix blr server protocol name
The server that the binlogrouter creates used the old protocol name that
caused a confusing deprecation warning.
2018-11-28 19:32:31 +02:00
Markus Mäkelä
3047b8b4cf Fix dependency installation script
The script generates files owned by root so it needs to be removed with
sudo. As the removal of the directory is the last command, its failure
causes the script to fail.
2018-11-28 19:32:31 +02:00
Markus Mäkelä
2dc6718d47 MXS-2188: Update target table in prepare_table
Passing the target table and create to the prepare_table function allows
the converter to update the internal variables.
2018-11-28 19:21:59 +02:00
Markus Mäkelä
2eee524eef Fix blr server protocol name
The server that the binlogrouter creates used the old protocol name that
caused a confusing deprecation warning.
2018-11-28 19:21:59 +02:00
Markus Mäkelä
70c8942a62 Fix dependency installation script
The script generates files owned by root so it needs to be removed with
sudo. As the removal of the directory is the last command, its failure
causes the script to fail.
2018-11-28 19:21:58 +02:00
Johan Wikman
0c973c1481 Update maintenance version 2018-11-28 14:39:15 +02:00
Johan Wikman
8f0a85fd46 2.3.2 is GA 2018-11-28 14:34:54 +02:00
Johan Wikman
2b25f8522f Update 2.3 changelog and 2.3.2 release notes 2018-11-28 14:26:15 +02:00