Commit Graph

14983 Commits

Author SHA1 Message Date
0a83e64a9c 2.4.19 Add release notes and update change log 2022-01-04 15:52:03 +02:00
d632c195ff 2.4.19 Update change date 2022-01-04 15:47:38 +02:00
3a05c22269 MXS-3892: Handle multiple pending queries
If the client sends another query before reading the previous result, it
was possible that another session finished the shard update and the
following query would reuse this result. This would cause the assertion in
the delayed call to fail as it assumes the shard would always be empty
when it was being called. To correctly handle this case, the delayed call
must be the one that moves the session into the normal routing state.
2021-12-31 15:33:15 +02:00
5724338959 MXS-3892: Document the change in behavior
It is worth documenting this change as the amount of queries done by
MaxScale is likely to decrease by a significant amount. This change can
also have a negative effect on the worst-case delay of the database
mapping but this isn't really a practical problem.
2021-12-31 15:25:18 +02:00
56ea0db3e6 MXS-3892: Delay routing instead of canceling it
Putting the sessions that aren't doing the update on hold makes the new
mechanism work the same way the old one did with the exception that it
won't put any extra work on the database itself.
2021-12-31 15:25:18 +02:00
41c2a6ee8e MXS-3892: Limit concurrent mapping of databases
As there are no practical benefits to multiple sessions for the same user
mapping the databases at the same time, limiting them to one update per
user is sensible. This is especially true now that we know the
information_schema tables aren't the most efficient things in the world.

The current code implements this rate limiting by closing any extra
sessions that would start a second update. The final implementation should
suspend them for the duration of the update as it is far more
user-friendly.

The limits are currently global as the shard caches are also global. This
is a performance bottleneck and it could be solved by storing the shard
cache inside of a mxs::WorkerGlobal instead of having it as a global
cache.
2021-12-31 15:25:18 +02:00
d57de28199 Fix schemarouter query queue
If the schemarouter service used a filter, any queued queries would end up
being routed twice for them as well. This would break any filters that
would expect a result for each query and it could also cause a hang if the
filter did not forward it up to the router.

The correct thing to do is to call the routeQuery method of the router
directly.
2021-12-31 15:25:18 +02:00
47a47db79e 2.4 Fix broken sanity_check.cpp 2021-12-28 08:29:01 +02:00
a3209bd1ca MXS-3915: Add test case
Extended sanity_check to cover this bug. The test reproduces the bug and
verifies that the fix works.
2021-12-14 16:35:37 +02:00
01dbcd8372 MXS-3915: Never cache autocommit queries
As both `SET autocommit=1` and `SET autocommit=0` share the same canonical
query form but do not have the same types, they should not be stored in
the cache.
2021-12-14 16:34:50 +02:00
e9da486c95 MXS-3885: Fix loading of configs from directories
The global config handler should only be used for the persisted
maxscale.cnf file, not for all files named maxscale.cnf.
2021-11-19 07:18:21 +02:00
e087a327fb MXS-3879: Fix loading of persisted global options
The code is now identical to the one in 2.5 and it still suffers from the
problem described in MXS-3885. This will be fixed in a separate commit.

This commit changes the persisted filename but since it was ignored, it
won't affect old installations.
2021-11-18 11:42:13 +02:00
39abee7b9a MXS-3310: Document KRB5_KTNAME 2021-11-15 13:27:38 +02:00
47601363a9 MXS-3873: Add test case
The test makes sure this problem is fixed by the fix for MXS-3585.
2021-11-15 12:54:40 +02:00
fa83259c62 MXS-3585 Fix problem 2021-11-15 12:37:41 +02:00
1185098e41 MXS-3836: Document refresh_databases "behavior"
The fact that the parameter does nothing in 2.4 and newer versions is now
at least documented. Fixing it this late in 2.4 could result in unwanted
changes in behavior.
2021-11-10 15:30:24 +02:00
1b432c1bf3 MXS-3617: Fix lost packets during writeq throttling
Backported the fix for MXS-3617 to 2.4.

If a packet was read from the backend while the client DCB was being
throttled due to writeq_high_water being hit, the response would be
discarded as it did not qualify for routing. The check should not check
whether the client DCB is in epoll as it has no effect on writes.
2021-11-10 07:27:37 +02:00
bbbeae4c94 Merge branch '2.4.18' into 2.4 2021-11-02 12:15:33 +02:00
ea7ff65dfa 2.4.18 Update release date 2021-11-02 08:10:20 +02:00
4f0998cb1f 2.4 Bump maintenance version 2021-10-29 09:09:23 +03:00
2a54224927 2.4.18 Update change date 2021-10-29 08:29:51 +03:00
eca32c84f6 2.4.18 Add release notes and update change log 2021-10-29 08:15:44 +03:00
0bf5641d80 MXS-3800: Explain lost_slave events
Currently the state change explanations are only added to mariadbmon. They
are less relevant for Galera clusters as they themselves explain why they
change their states but should still be added to make them easier to
analyze.

The event that isn't explained and is most often encountered is the loss
of a Slave status. Most often the loss of a Slave status happens because
either the IO thread or the SQL thread has stopped. Printing the states of
the threads as well as the latest error should hint at what caused the
outage.

The information can be added to the REST API in 2.5 where the monitors can
add extra information to the server JSON.
2021-10-20 10:03:03 +03:00
136d0271df Log DCB remote on SSL error
This should help identify the client which caused the error to occur.
2021-10-05 13:12:49 +03:00
b4edc74926 MXS-3609: Use 64-bit integers for statistics
This should be enough to avoid the problem of integer overflow in 2.4.
2021-08-31 08:15:02 +03:00
aa6a1a58eb MXS-3359 Change qla-filter append option to default to true
Append to log files after a restart rather than overwrite.
2021-08-20 13:03:13 +03:00
8765eb88fa MXS-3415: Export config with correct permissions
The created file is now created with the correct permissions: read and
write permissions for the user and group.
2021-08-02 09:30:06 +03:00
c668da624b MXS-3656 Fix test crash_on_bad_sescmd
Spaces in object names.
2021-07-02 09:39:13 +03:00
a1b3dfff54 MXS-3114: Fix creation of listeners with sockets
Backporting to 2.4.

The socket parameter wasn't correctly extracted.
2021-06-12 01:12:30 +03:00
784cab2daf MXS-3114: Fix duplicate listener check
Backporting to 2.4.

The listener search used the host and port for listeners that used sockets
and vice versa. This caused multiple listeners with sockets to fail to be
created.
2021-06-12 01:12:21 +03:00
2d9ebbdbc4 Merge branch '2.3' into 2.4 2021-06-07 08:34:26 +03:00
946f2e57fa MXS-3582: Backport fix to 2.3 and 2.4
2.3 and 2.4 seem to also be affected by it.
2021-06-04 14:06:25 +03:00
ab71e93d49 Merge branch '2.3' into 2.4 2021-06-01 12:45:58 +03:00
b7e4ee6faa Fix qc_sqlite compilation failure with GCC 11
The sqlite code is indented oddly:

In file included from query_classifier/qc_sqlite/qc_sqlite3.c:21:
sqlite-bld-3110100/sqlite3.c:98051:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
98051 |   if( a[0]<33 ) a[0] = 33;        assert( 33==sqlite3LogEst(10) );
      |   ^~
sqlite-bld-3110100/sqlite3.c:98051:35: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
98051 |   if( a[0]<33 ) a[0] = 33;        assert( 33==sqlite3LogEst(10) );
      |                                   ^~~~~~
2021-06-01 12:21:40 +03:00
7e97144274 MXS-3529: Update to connector-c 3.1.13
This fixes the problem with the newest CMake versions. Also fixed the unit
test option.
2021-05-24 18:11:10 +03:00
e9b767d463 MXS-3535 Fix tests
Some minor discrepancies are simply ignored at this point in time.
2021-05-24 10:57:13 +03:00
aa1b481197 MXS-3535 Collect information from ON clause
In the case of qc_sqlite, it is done "precisely", while in the
case of qc_mysqlembedded rather bluntly. Not time well spent
to figure out exactly which pointer chains need to be walked.
2021-05-24 10:54:35 +03:00
e7f9a5bd65 MXS-3535 Add test that reveals the problem
qc_sqlite does not collect from ON.
2021-05-24 10:50:35 +03:00
63daa0e28c Merge branch '2.3' into 2.4 2021-05-18 16:22:14 +03:00
2d102b2a33 MXS-3538 Update Changelog regarding server authenticator_options 2021-05-17 10:09:07 +03:00
59c3449d6d Fix shebang in build.sh 2021-05-06 08:35:14 +03:00
94b65f8242 MXS-3533: Advertise SESSION_TRACK capability
MaxScale already enables it explicitly in the flags in certain cases but
it didn't support it if the client asked for it.
2021-05-05 11:42:53 +03:00
38cdade698 MXS-3487: Close old master connection
When a transaction migration starts, the old master must be
unconditionally closed. This is the simplest way of resetting the
connection state and it also helps close unused connections.
2021-04-09 08:49:40 +03:00
7643dd1445 MXS-3417 Move mxs1662_pam_admin-test inside pam_authentication
The test failed because the linux user it used was not available
on buildbot. Now the test is part of the larger pam_authentication-
test, which sets up the users.
2021-03-26 11:28:03 +02:00
d914c01797 Merge remote-tracking branch 'origin/2.4.17' into 2.4 2021-03-24 15:33:54 +02:00
a150463e4a Correct release year from 2020 to 2021 2021-03-24 15:30:30 +02:00
19d999f8ee MXS-3417 Indicate a skipped test with a special return value 2021-03-08 16:53:49 +02:00
d23f22a577 Merge branch '2.4.17' into 2.4 2021-03-08 15:01:52 +02:00
a02d4c15ce 2.4.17 Update release date 2021-03-08 14:57:14 +02:00
19100bdde2 2.4 Bump maintenance release 2021-03-08 09:31:06 +02:00