Commit Graph

6048 Commits

Author SHA1 Message Date
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
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
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
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
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
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
caf3b4cf75 Remove redundant call
The function was already called by mxs_mysql_real_connect.
2020-03-12 11:03:04 +02:00
d0ab797938 Merge branch '2.3' into 2.4 2020-03-12 10:33:57 +02:00
e0cd6adb26 Update change date for 2.3.18 2020-03-10 10:45:47 +02:00
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
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
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
4a5293ebba Merge branch '2.3' into 2.4 2020-03-02 18:05:11 +02:00
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
4e5d9099ed Merge commit 'e180c200555576cc1f9bfc77342abba422934e4a' into 2.4 2020-03-02 12:51:57 +02:00
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
912cb711e3 MXS-2844: Fix binlogrouter destruction
Binlogrouter services can now be destroyed at runtime.
2020-02-14 08:55:48 +02:00
f576680ed9 Update 2.4.7 change date
Only the files that were not already updated as part of the
2.3.17 release.
2020-02-12 15:21:44 +02:00
fec1698db5 MXS-2889: Fix Replicator hang on shutdown
If a connection to the servers cannot be made, the replicator thread would
never exit.
2020-02-12 13:33:27 +02:00
3fc20d4345 MXS-2822: Use both last_write and last_read
The code relied on last_read for the idle time calculation which caused
the pings that were written to not reset the idle time. This increased the
chance of multiple COM_PING packets being sent to a backend before a reply
was received.
2020-02-12 13:33:27 +02:00
8b763fb88b Merge branch '2.3' into 2.4 2020-02-12 08:27:48 +02:00
919686f7ad Merge branch '2.3.17' into 2.3 2020-02-12 08:22:59 +02:00
d63bd7ca80 Merge branch '2.3' into 2.4 2020-02-11 22:43:49 +02:00
fd875cbf6d Remove faulty debug assertion
The use of the server state is not transactional across multiple uses of
the function. This means that any assertions on the target state can fail
if the monitor updates the state between target selection and the
assertion.
2020-02-11 22:34:39 +02:00
d700fc32ed Merge branch '2.3' into 2.4 2020-02-10 15:58:01 +02:00
c18f9c6bd7 MXS-2883: Handle AuthSwitchRequest packets
The backend didn't expect AuthSwitchRequest packets in response to the
handshake response packets. This is allowed by the protocol and appears to
happen with at least MySQL 8.0.
2020-02-10 15:35:47 +02:00
cfb3f79b54 Update 2.3.17 Change Date 2020-02-10 15:28:38 +02:00
75ba527b1c Merge branch '2.3' into 2.4 2020-02-10 13:59:30 +02:00
ef769573e4 MXS-2880 Fix typo in json output
"seconds_behing_master" -> "seconds_behind_master"
2020-02-10 12:59:30 +02:00
791d2ade99 Log latest error on broken master connection
When the master goes down, log the latest error if one is present.
2020-02-10 10:46:11 +02:00
25045c41a2 Merge branch '2.3' into 2.4 2020-01-24 13:06:42 +02:00
a0affe1bb7 MXS-2784: Use SQL to fetch default character set
The Connector-C was changed to always return only the client's charset,
not the actual charset that the connection ends up using. To cope with
this, the code has to use SQL to join the default character set name to
the default collation for it which can be used to extract the numeric ID
of the charset.
2020-01-24 10:51:15 +02:00
17916969b6 Merge branch '2.3' into 2.4 2020-01-24 09:48:05 +02:00
4641dc208f Fix sescmd debug assert
The assertion will not hold for COM_CHANGE_USER. This prevents the debug
assertion but the actual backend code should also be changed.
2020-01-23 18:38:05 +02:00
6dd4a04c5d cherry-pick: MXS-2803: Write all buffered data
Since the queued queries will never be inspected after the COM_CHANGE_USER
completes, they should all be written instead of only the first packet.
2020-01-23 18:38:05 +02:00
c04d6748d3 Fix debug assertion on inconsistent sescmd result
The slave backend would be closed twice if it would both respond with a
different result and be closed due to a hangup before the master
responded.

Added a test case that reproduced the problem.
2020-01-23 18:38:05 +02:00
714dece7dd Update 2.4.6 Change Date
We use same as for 2.3.16.
2020-01-21 13:22:25 +02:00
fe1043219e Merge branch '2.3' into 2.4 2020-01-21 09:33:41 +02:00
e2976a6689 MXS-2843: Remove password hash from log_info output 2020-01-21 09:27:08 +02:00
a7e0142224 Merge branch '2.3' into 2.4 2020-01-15 11:29:37 +02:00
790d90f229 Update 2.3.16 Change Date 2020-01-15 11:08:51 +02:00
3ed30327e5 Merge branch '2.3' into 2.4 2020-01-14 10:10:58 +02:00
a65220165a Fix use of gw_get_shared_session_auth_info
If the client DCB of the session was passed into the function, it was
possible that the session pointer for it was already set to null. The
session pointer of an open DCB is never null but a client DCB's session
pointer can be null if accessed via the MXS_SESSION object.
2020-01-13 19:28:45 +02:00
6c14ac7829 MXS-2834: Make retrying of trx deadlocks configurable
The behavior is not desirable in all cases and should be enabled only if
needed.
2020-01-11 11:53:01 +02:00
b555115fa2 Merge branch '2.3' into 2.4 2020-01-07 11:12:02 +02:00
6306519e5e MXS-2710: Move client_count handling inside Session
By incrementing the counters when the session is created, we know that the
counter will always be decremented correctly. This does cause the listener
session to be counted as an actual session but this is already present in
the statistics calculations and is something we have to live with in 2.3
This change also makes it possible to overshoot the connection count
limitation as the session creation is delayed until authentication
fails. Both of these problems are fixed in 2.4.
2020-01-07 10:40:40 +02:00
aa83bc24ae MXS-2820: Log default database on auth failure
The default database was not exposed in the warning that was logged when
authentication failed. The authentication uses the username, host and the
default database to find the user entry and the lack of the default
database made it hard to know for sure which user entry a client should've
matched against.
2020-01-02 12:00:10 +02:00
964207cbea MXS-2820: Return correct value on wrong password 2020-01-02 11:34:47 +02:00
5fe97808e3 Merge branch '2.3' into 2.4 2019-12-20 11:44:11 +02:00
61b8bbf7f6 Allow non-GTID replication without rewrite_src
The filter allowed only GTID replication when file-and-position based
replication should be allowed as well.
2019-12-20 11:05:46 +02:00