14154 Commits

Author SHA1 Message Date
Johan Wikman
1c28eefbd0 MXS-2727 Add fix
If an existing cache-entry should be updated, but the new value
is larger that the maximum size of the cache, then the cache can
not be updated, but the old value must be removed.

Whether or not we succeed in removing the entry, an error result
must be returned. Earlier OK was returned, but no node was
allocated, which then caused a crash.
2019-11-12 15:27:31 +02:00
Johan Wikman
6a319dc655 MXS-2727 Add test that reveals problem 2019-11-12 15:20:32 +02:00
Johan Wikman
521960e6f9 MXS-2727 Add program for causing cache stress 2019-11-12 15:18:36 +02:00
Johan Wikman
e332625b8d MXS-2727 Allow assignment to config types
Allows for code like

    CacheConfig config("MXS-2727");
    config.storage = std::string("inmemory_storage");
    config.soft_ttl = std::chrono::seconds(1);
    config.hard_ttl = std::chrono::seconds(10);
    config.max_size = 10;
    config.thread_model = CACHE_THREAD_MODEL_MT;
    config.enabled = true;

to be used when you want to create a configuration manually and not
from a configuration file.
2019-11-12 11:18:18 +02:00
Johan Wikman
ff80f2b514 Merge branch '2.3' into 2.4 2019-11-12 09:19:43 +02:00
Johan Wikman
d282d7c93f Merge branch '2.3.14' into 2.3 2019-11-12 09:19:27 +02:00
Johan Wikman
133a947bb5 Update 2.3.14 release date 2019-11-12 09:10:21 +02:00
Johan Wikman
0a4caaf817 Merge branch '2.3' into 2.4 2019-11-12 08:50:17 +02:00
Johan Wikman
5a8564628f Merge branch '2.3.14' into 2.3 2019-11-12 08:41:58 +02:00
Johan Wikman
d37b79d835 Update 2.3 maintenance number 2019-11-12 08:36:44 +02:00
Johan Wikman
27417b5328 Add 2.3.14 release notes and update change log 2019-11-11 09:11:51 +02:00
Markus Mäkelä
9e931918e2
Build and test in parallel
This speeds up builds when more CPUs are available. Also removed redundant
docker installation: mdbci already installs it.
2019-11-11 09:10:42 +02:00
Markus Mäkelä
3f05059afa
Merge branch '2.3' into 2.4 2019-11-11 09:09:10 +02:00
Markus Mäkelä
638d1bf354
MXS-2760: Fix ssl_version conversion
The value is now correctly converted to the enum values.
2019-11-11 09:05:46 +02:00
Johan Wikman
d67442356e Merge branch '2.3' into 2.4 2019-11-08 14:13:06 +02:00
Johan Wikman
71e1f81adc .gitignore: Add more stuff to ignore 2019-11-08 14:07:47 +02:00
Markus Mäkelä
5c4ac03c07
Log a message in readconnroute's handleError
This way there's trace that something unexpected happened and that the
session closed unexpectedly.
2019-11-08 13:44:21 +02:00
Markus Mäkelä
0a897aa839
Fix ccrfilter_global
Made sure that the inserted row is replicated before inserting another
one. Shortened the test so that slower systems finish it within a
reasonable time. Increased the time that the writes are routed to the
master.
2019-11-08 07:39:20 +02:00
Johan Wikman
aafea9b030 Merge branch '2.4.3' into 2.4 2019-11-06 08:28:28 +02:00
Johan Wikman
27516b41af Update 2.4.3 release date 2019-11-06 08:24:46 +02:00
Johan Wikman
1ad57890a6 Merge branch '2.4.3' into 2.4 2019-11-05 12:37:13 +02:00
Johan Wikman
b33ef98f6c Update 2.4.3 release notes 2019-11-05 12:35:34 +02:00
Johan Wikman
ab217f42d7 Update 2.4 maintenance release version 2019-11-05 12:32:14 +02:00
Johan Wikman
fdfbf3e133 Update 2.4.3 change date 2019-11-05 12:21:00 +02:00
Johan Wikman
78521d6452 Remove 2.3 release notes from 2.4 2019-11-05 11:30:09 +02:00
Johan Wikman
d4a4518155 Add 2.4.3 release notes and update change log 2019-11-05 11:29:20 +02:00
Markus Mäkelä
03e8e85a22
Enable SO_KEEPALIVE
This hopefully prevents unnecessary TCP timeouts.
2019-11-05 11:02:32 +02:00
Markus Mäkelä
ca52d1cdce
Fix avro and avro_alter
The tests should check whether the nodes are alive.
2019-11-04 11:06:40 +02:00
Markus Mäkelä
3bb87d3dc3
Change wait_for_monitor interval default to 2
At least two intervals are required to guarantee that a monitor detected
an event. This should increase the stability of the tests.
2019-11-04 08:39:10 +02:00
Markus Mäkelä
a1e8287265
Add global to ccrfilter
The `global` parameter causes the time window defined by the `time`
parameter to be applied at the instance level instead of the session
level. This means that a write from one connection will cause all other
connections to use the master for a certain period of time.

Using a configurable time window for consistency is not good as it is not
absolute and cannot adjust to how servers behave.

One example that demonstrates this is when a slave is normally lagging
behind by less than a second but some event causes the lag to spike up to
several seconds. In this case the configured time window would no longer
guarantee consistency.

Another reason to avoid a "static" time window is the fact taht it
prevents load balancing in the cases where slaves catch up to the master
within time window. This happens when time is configured to a higher value
to avoid inconsistencies at all costs.

Added a test case that verified the feature works.
2019-11-04 08:32:17 +02:00
Johan Wikman
dcd3e60630 Merge branch '2.3' into 2.4 2019-11-01 14:21:48 +02:00
Johan Wikman
6cba7e8201 MXS-2732 Recognize character set names
In the tokenizer we will now recognize the character set names
of MariaDB and return a specific token for those. However, where
a character set name is not expected, it will automatically be
treated as an identifier.

Note that when the character set name is explicitly specified
for a literal string, the name must be prefixed with an underscore.
That is, if the character set name is "latin1", when used when
specifying a literal string, it's used as "_latin1 'a'".

Note that this does not fix the sqlite3 bug causing a leak, but
since the statement will now correctly be parsed, the leak will
not manifest itself.
2019-10-31 16:09:52 +02:00
Johan Wikman
177d95c3bc MXS-2732 Add test that reveals problem 2019-10-31 15:49:28 +02:00
Johan Wikman
ef184deb1f Merge branch '2.3' into 2.4 2019-10-31 10:06:27 +02:00
Johan Wikman
50292c9f45 Merge branch '2.3.13' into 2.3 2019-10-31 10:06:02 +02:00
Johan Wikman
40a4ced21e Update 2.3.13 release date 2019-10-31 10:03:00 +02:00
Johan Wikman
88e0c3dc37 MXS-2732 Remove old sqlite-src-3110100 directory 2019-10-30 12:05:53 +02:00
Johan Wikman
4af67e95ff MXS-2732 Take newly installed sqlite3 into use
No code differences, but the used sqlite has now been installed
in one single commit.
2019-10-30 11:36:04 +02:00
Johan Wikman
c2a601bcf5 MXS-2732 Add MaxScale sqlite3 changes
This commit contains all MaxScale changes that have been made
to sqlite3 version 3110100.
2019-10-30 11:28:39 +02:00
Johan Wikman
d2db25073b MXS-2732 Update sqlite3 tool mkopcodeh.tcl from 3200000
The mkopcodeh.tcl of sqlite3 version 3110100 has a bug that
manifests itself so that it generates broken code depending on
what keywords there are and in what order. The mkopcodeh.tcl
from 3200000 does not have that problem.
2019-10-30 11:22:31 +02:00
Johan Wikman
6df8fb2497 MXS-2732 Add sqlite3 version 3110100 2019-10-30 10:58:24 +02:00
Johan Wikman
81e78726eb MXS-2732 Rename sqlite-src-3110100 to sqlite-src-3110100.old
Originally, the sqlite installation was imported into the MaxScale
repository in the one gigantic MaxScale 1.4 -> 2.0 commit.

Consequently, there is no import commit to compare to if you want
to extract all MaxScale specific changes. To make it simpler in the
future, sqlite will now be imported in a commit of its own.
2019-10-30 10:58:24 +02:00
Markus Mäkelä
290d38c67f
Document ColumnStore requirements for authentication
One extra grant is required if the backend servers use ColumnStore
binaries.
2019-10-30 09:17:46 +02:00
Johan Wikman
861e27eb00 Merge branch '2.3' into 2.4 2019-10-29 14:04:31 +02:00
Johan Wikman
363498ef6b Update 2.3 maintenance number 2019-10-29 13:01:14 +02:00
Johan Wikman
df6c56e7ca Update 2.3.13 Change Date 2019-10-29 12:51:31 +02:00
Johan Wikman
cde0060a20 2.3.13: Add release notes and update change log 2019-10-29 12:29:51 +02:00
Markus Mäkelä
4d51342561
Merge remote-tracking branch 'origin/2.3' into 2.4 2019-10-29 12:29:32 +02:00
Markus Mäkelä
639b0af6aa
MXS-2734: Check preferred server on table conflict
If the schemarouter detects a table conflict in a query and one of the
servers is the preferred one, don't log an error.
2019-10-29 11:34:09 +02:00
Markus Mäkelä
e82be12be9
Cache password hash results
Since the user authentication stores a SHA2-512 hash of the password on
disk, caching the hash results in memory speeds up the authentication
process significantly. Storing the password on disk in plain-text form
would also speed it up but this would be quite insecure.
2019-10-29 11:34:09 +02:00