8843 Commits

Author SHA1 Message Date
Markus Mäkelä
727aeb4a08
Merge branch '2.3' into 2.4 2020-06-02 10:53:05 +03:00
Markus Mäkelä
cb8b4546cb
Don't use client SHA1 for fake responses
When a fake handshake response is generated for a connection that hasn't
received the server's handshake, the client's SHA1 would be used with a
static scramble. This, in theory, would weaken the authentication to some
extend so to completely prevent this, a null password is used. This
removes any possibility of the password being exposed.
2020-06-02 10:17:40 +03:00
Markus Mäkelä
922630f76f
MXS-3019: Fix enum value validation
Also added a test case that reproduces the problem and verifies that it is
fixed.
2020-06-01 20:36:59 +03:00
Markus Mäkelä
f013d3ccd9
MXS-3013: Add reload endpoint for services
The endpoint reloads the database users. This can also be used in the
future to refresh encrypted credentials when they are no longer loaded
every time an encrypted password is used.
2020-06-01 12:26:29 +03:00
Markus Mäkelä
c3dff9c60c
MXS-3014: Add missing global parameters to REST API
A few global parameters weren't included in the list of parameters. A few
non-parameter values that were in the parameter object were moved out into
the attributes object. Sorted the parameter alphabetically.
2020-05-29 08:32:39 +03:00
Markus Mäkelä
e2642d64b9
MXS-3010: Fix maxkeys and the test
The test doesn't work properly if the maxscale user doesn't exist and the
key file permissions cannot be given to it. The test should use the
current user as the owner of the file but it turned out that the -u option
is broken.

Extended the test case to make sure the same password with the same
encryption key results in the same hash.
2020-05-25 19:45:33 +03:00
Markus Mäkelä
265a0cb449
MXS-3000: Serialize all global parameters
Not all parameters were serialized to disk.
2020-05-25 10:27:52 +03:00
Markus Mäkelä
4cc5fa115a
Merge branch '2.3' into 2.4 2020-05-11 08:42:02 +03:00
Markus Mäkelä
b4108270dc
MXS-2982: Fix documetation link in --help output 2020-05-11 07:44:57 +03:00
Markus Mäkelä
0ddee9613b
MXS-2981: Treat missing TLS files as an error
Also treats partially defined TLS files as an error.
2020-05-11 07:44:56 +03:00
Johan Wikman
321126660f 2.4.9 Update Change Date 2020-04-29 10:17:14 +03:00
Markus Mäkelä
d3d7054639
Merge branch '2.3' into 2.4 2020-04-24 16:09:20 +03:00
Markus Mäkelä
25b8eeb415
MXS-2972: Store servers in the cache key
This allows the set of servers used by the service to also participate in
the cache value resolution. This will prevent the most obvious of problems
but any abstractions of the servers will prevent this from working.
2020-04-23 14:34:38 +03:00
Johan Wikman
f527a8f2e6 2.3.19 Update Change Date 2020-04-23 14:23:57 +03:00
Markus Mäkelä
e87ad4abb9
Log USE message on info level
This tells us which server gets the USE command.
2020-04-22 09:01:27 +03:00
Markus Mäkelä
9efd33186d
MXS-2968: Fix direct replication server_id 2020-04-22 09:01:27 +03:00
Markus Mäkelä
c8c919be27
Merge branch '2.3' into 2.4 2020-04-09 12:02:44 +03:00
Markus Mäkelä
aacae9b508
MXS-2956: Fix use of admin_ssl_ca_cert
The parameter is now optional and uses the correct file. If defined, it
defines the CA certificate that would be used to verify client
certificate. Client certificate verification doesn't seem to currently
work as that requires a custom verification callback that interfaces with
GnuTLS.
2020-04-09 11:58:50 +03:00
Markus Mäkelä
83b03d89b5
MXS-2861: Add ssl_cipher to servers and listeners
This allows the set of TLSv1.2 ciphers to be selected which is required to
fulfill certain regulatory requirements.
2020-04-09 11:48:44 +03:00
Markus Mäkelä
6fdb7ed089
Merge remote-tracking branch 'origin/2.3' into 2.4 2020-03-30 10:23:35 +03:00
Markus Mäkelä
7b00d2c01b
MXS-2942: Only DELETE monitors with no servers
The behavior is now according to the documentation and is consistent with
how services behave.
2020-03-30 08:53:54 +03:00
Markus Mäkelä
e6ee3aaff4
MXS-2943: Use correct variable 2020-03-26 06:08:56 +02:00
Markus Mäkelä
557a108940
MXS-2943: Add ColumnStore-as-a-plugin support
The version of the ColumnStore that is distributed as a plugin with
MariaDB is now correctly detected.
2020-03-25 15:33:15 +02:00
Markus Mäkelä
b98b8f9d4a
MXS-2939: Fix reconnection with session commands
Session commands did not trigger a reconnection process which caused
sessions to be closed in cases where recovery was possible.

Added a test case that verifies the patch fixes the problem.
2020-03-19 15:12:31 +02:00
Markus Mäkelä
552fdcb88a
MXS-2938: Log session command info on routing failure
If the session command could not be routed, the log message should contain
the actual command that was routed. This makes failure analysis much
easier.
2020-03-19 15:12:31 +02:00
Markus Mäkelä
5984af468c
Process EPOLL[RD]HUP after EPOLLIN
This allows COM_QUIT packets to be processed first in case a EPOLLIN and a
EPOLLRDHUP event arrive at the same time. This fixes the pers_01 test.
2020-03-17 15:20:07 +02:00
Markus Mäkelä
9609f5d180
Revert "MXS-2920: Allow max_slave_replication_lag=0"
This reverts commit ca69da49911074a9d218f05936282fd72a674af5 and removes
the bug from the release notes.
2020-03-17 06:58:26 +02:00
Markus Mäkelä
f5b61e169b
Update npm packages
Updated packages due to npm audit warnings.
2020-03-16 11:32:43 +02:00
Johan Wikman
5217836e83 Update 2.4.8 Change Date
Same as that of 2.3.17. Consequently, only the 2.4 specific files
are updated.
2020-03-16 11:25:59 +02:00
Markus Mäkelä
ca69da4991
MXS-2920: Allow max_slave_replication_lag=0
A requirement of no lag should be allowed. The reason why it wasn't was
simply due to the selection of the default value.
2020-03-13 13:23:47 +02:00
Markus Mäkelä
76e855dc1d
MXS-2919: Don't use slaves with unknown lag
If a limit on the replication lag is configured, servers with unmeasured
replication lag should not be used. The code in question did use them even
when a limit was set as the value used for undefined lag was -1 which
always measured lower than the limit.
2020-03-13 13:23:47 +02:00
Markus Mäkelä
2eeb583245
MXS-2921: Fix memory leak in alter maxscale
The alteration of core parameters leaked the JSON object.
2020-03-13 11:44:02 +02:00
Markus Mäkelä
291d2e987f
Improve charset selection
The charset sent in the handshake is now done with the following
priorities:

* First Master server
* Last Slave server
* First Running server or Down server whose charset is known

The change is that server in the Down state to which we've successfully
connected to can also be used as the charset source. This, in addition
with an "empty" default charset, helps avoid the use of the default latin1
charset unless absolutely necessary.
2020-03-12 11:03:04 +02:00
Markus Mäkelä
caf3b4cf75
Remove redundant call
The function was already called by mxs_mysql_real_connect.
2020-03-12 11:03:04 +02:00
Johan Wikman
d0ab797938 Merge branch '2.3' into 2.4 2020-03-12 10:33:57 +02:00
Markus Mäkelä
6f018e752b
Process error events first
This prevents EPOLLOUT/EPOLLIN events from triggering confusing errors if
an EPOLLERR event happens at the same time.
2020-03-10 14:25:57 +02:00
Johan Wikman
e0cd6adb26 Update change date for 2.3.18 2020-03-10 10:45:47 +02:00
Markus Mäkelä
f7d502d1e1
Use json_object_set_new
The non-set case should only be used when a copy of an existing object is
needed. This fixes a memory leak in Cache::do_get_info.
2020-03-09 07:51:08 +02:00
Markus Mäkelä
6f45545e09
Fix call command memory leak
The module command arguments were never freed.
2020-03-09 07:38:53 +02:00
Markus Mäkelä
3da2580f09
Fix list modules memory leak
The wrong JSON function was used: the one without the _new suffix will
copy the memory.
2020-03-09 07:31:49 +02:00
Markus Mäkelä
2bb914b21e
Fix param_type_to_str
Duration wasn't in the switch. Removing the default case allows this to be
detected at compile time.
2020-03-09 07:23:52 +02:00
Markus Mäkelä
eb0432b7b2
MXS-2860: Extract socket error only when needed
As the process of extracting the socket error also resets it, it should be
done only when necessary.
2020-03-06 13:56:42 +02:00
Markus Mäkelä
9eceeffc04
MXS-2811: Set TLS version with MARIADB_OPT_TLS_VERSION
The ssl_version values now also affect the TLS version used by the
connector.
2020-03-05 21:13:38 +02:00
Markus Mäkelä
1bf46fadf6
MXS-2891: Log password hash on mismatch
By logging the password hash when user authentication fails due to a
password mismatch, we can be certain what the client sent and what is the
currently stored value in MaxScale. This should not be on by default which
is why a new parameter is required.
2020-03-04 17:11:34 +02:00
Markus Mäkelä
4a5293ebba
Merge branch '2.3' into 2.4 2020-03-02 18:05:11 +02:00
Markus Mäkelä
67fee60f80
Fix Auth Error server status
The mon_ping_or_connect_to_db resets the MYSQL handle which caused the
loss of the error message. Returning a new enumeration value for
authentication errors solves this problem.
2020-03-02 16:32:35 +02:00
Markus Mäkelä
4e5d9099ed
Merge commit 'e180c200555576cc1f9bfc77342abba422934e4a' into 2.4 2020-03-02 12:51:57 +02:00
Markus Mäkelä
e180c20055
MXS-2899: Update charset only when successful
By updating the server charset only when we successfully query it, the
charset will not change due to network connectivity problems.
2020-02-27 14:18:51 +02:00
Markus Mäkelä
9ca2c7f777
Merge branch '2.3' into 2.4 2020-02-24 14:10:19 +02:00
Markus Mäkelä
b241f7ed2a
MXS-2896: Fix monitor connection creation
The connection is now correctly null after a failed attempt to connect.
2020-02-24 12:02:50 +02:00