14982 Commits

Author SHA1 Message Date
Johan Wikman
d632c195ff 2.4.19 Update change date 2022-01-04 15:47:38 +02:00
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Johan Wikman
47a47db79e 2.4 Fix broken sanity_check.cpp 2021-12-28 08:29:01 +02:00
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
39abee7b9a
MXS-3310: Document KRB5_KTNAME 2021-11-15 13:27:38 +02:00
Markus Mäkelä
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
Johan Wikman
fa83259c62
MXS-3585 Fix problem 2021-11-15 12:37:41 +02:00
Markus Mäkelä
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
Markus Mäkelä
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
Johan Wikman
bbbeae4c94 Merge branch '2.4.18' into 2.4 2021-11-02 12:15:33 +02:00
Johan Wikman
ea7ff65dfa 2.4.18 Update release date 2021-11-02 08:10:20 +02:00
Johan Wikman
4f0998cb1f 2.4 Bump maintenance version 2021-10-29 09:09:23 +03:00
Johan Wikman
2a54224927 2.4.18 Update change date 2021-10-29 08:29:51 +03:00
Johan Wikman
eca32c84f6 2.4.18 Add release notes and update change log 2021-10-29 08:15:44 +03:00
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
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
Niclas Antti
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
Markus Mäkelä
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
Johan Wikman
c668da624b MXS-3656 Fix test crash_on_bad_sescmd
Spaces in object names.
2021-07-02 09:39:13 +03:00
Markus Mäkelä
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
Markus Mäkelä
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
Markus Mäkelä
2d9ebbdbc4
Merge branch '2.3' into 2.4 2021-06-07 08:34:26 +03:00
Markus Mäkelä
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
Markus Mäkelä
ab71e93d49
Merge branch '2.3' into 2.4 2021-06-01 12:45:58 +03:00
Markus Mäkelä
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
Markus Mäkelä
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
Johan Wikman
e9b767d463 MXS-3535 Fix tests
Some minor discrepancies are simply ignored at this point in time.
2021-05-24 10:57:13 +03:00
Johan Wikman
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
Johan Wikman
e7f9a5bd65 MXS-3535 Add test that reveals the problem
qc_sqlite does not collect from ON.
2021-05-24 10:50:35 +03:00
Esa Korhonen
63daa0e28c Merge branch '2.3' into 2.4 2021-05-18 16:22:14 +03:00
Esa Korhonen
2d102b2a33 MXS-3538 Update Changelog regarding server authenticator_options 2021-05-17 10:09:07 +03:00
Markus Mäkelä
59c3449d6d
Fix shebang in build.sh 2021-05-06 08:35:14 +03:00
Markus Mäkelä
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
Markus Mäkelä
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
Esa Korhonen
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
Niclas Antti
d914c01797 Merge remote-tracking branch 'origin/2.4.17' into 2.4 2021-03-24 15:33:54 +02:00
Niclas Antti
a150463e4a Correct release year from 2020 to 2021 2021-03-24 15:30:30 +02:00
Esa Korhonen
19d999f8ee MXS-3417 Indicate a skipped test with a special return value 2021-03-08 16:53:49 +02:00
Johan Wikman
d23f22a577 Merge branch '2.4.17' into 2.4 2021-03-08 15:01:52 +02:00
Johan Wikman
a02d4c15ce 2.4.17 Update release date 2021-03-08 14:57:14 +02:00
Johan Wikman
19100bdde2 2.4 Bump maintenance release 2021-03-08 09:31:06 +02:00
Johan Wikman
a8bfbbe254 2.4.17 Update change date 2021-03-08 09:03:02 +02:00