14253 Commits

Author SHA1 Message Date
Markus Mäkelä
e56cf41160
MXS-2809: Update links in example config 2019-12-18 09:58:23 +02:00
Markus Mäkelä
f39ed6803e
Merge branch '2.3' into 2.4 2019-12-17 14:04:47 +02:00
Markus Mäkelä
be088c54b4
Add LOAD DATA INFILE support
The events are similar to normal query events except that they have an
extra 13 bytes of static data. This data is of no relevance to Maxscale
and thus can be ignored. This also allows the reuse of the same query
event code for execute load query events.
2019-12-17 13:54:08 +02:00
Markus Mäkelä
a1009824a6
RCAP_TYPE_STMT_OUTPUT needs complete packets
It was possible that a null buffer was passed to clientReply if the
RCAP_TYPE_STMT_OUTPUT capability was needed and a partial packet was read.
2019-12-17 13:53:06 +02:00
Markus Mäkelä
78cc8f17b3
Replace debug assertion with warning
It appears that rollback errors are possible outside of
transactions. Since this was not something we expected to see, logging it
as an error allows us to see why this happens in production deployments.
2019-12-17 13:53:06 +02:00
Markus Mäkelä
b3f44adb16
MXS-2797: Fix handle_events documentation
The parameter was called handle_server_events when in reality it was
handle_events.
2019-12-17 13:48:51 +02:00
Markus Mäkelä
b0a1eddb6c
Store ignored error information
The errors that are ignored by readwritesplit are now stored as the
current close reason in the Backend. This allows the information about the
error to be retained and it can be used later in the error handler to
display the true reason why the connection was closed.
2019-12-17 13:48:51 +02:00
Timofey Turenko
a2eafc2381 Merge test changes from 2.3 2019-12-16 20:01:35 +02:00
Timofey Turenko
aa801c74c5 Use constexpr instead of define in the mxs173_throttle_filter test 2019-12-16 19:53:53 +02:00
Timofey Turenko
e1fc0b8734 Squashed commit of the following:
commit 48a0b902b67da46f1eed4afa687bdcb56b59d02f
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Mon Dec 16 15:35:07 2019 +0200

    Increase timouts in the mxs173_trottle_filter test

commit 81d8083a89421a8004b8024d480ae0f35d715b86
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Mon Dec 16 14:19:39 2019 +0200

    Increase timeouts in max1071_maxrow test

commit e1039c6132f0e9274b8801165f3f905ede7c9421
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Mon Dec 16 00:06:53 2019 +0200

    Remove hardcoded 'home/vagrant/' from all maxscale.cnf in system tests

commit 28c8029e060afdcf5159bf802b13dcd5e484d9f1
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sun Dec 15 21:31:34 2019 +0200

    Use private IP for Galera congiguration in maxscale-system-tests

commit 66dc36cbf43a5fb92465df31e1295e82865be1fc
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sun Dec 15 09:06:28 2019 +0200

    Fix typos in fwf_*.cpp

commit 44c7a4384ddf39596c0254c955aeb6c008a00a35
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sun Dec 15 09:05:26 2019 +0200

    Fix typos in fwf_*.cpp

commit 2649017611908a8b0d27090f49722947ac31c4f4
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sun Dec 15 09:03:41 2019 +0200

    Fix typos in fwf_*.cpp

commit 5cc87658523e8496eaab17700be8a821af5b0cde
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sat Dec 14 23:54:53 2019 +0200

    Fix typo in fwf_copy_rules.cpp

commit fb1accc36cb9d79691469f63cb4535f3bc38dedd
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sat Dec 14 23:52:51 2019 +0200

    More hardcoded 'vagrant' removals

commit 77e49d474b4abe767629ff87b01f08137773d761
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sat Dec 14 23:35:09 2019 +0200

    Fix hardcoded 'vagrant' user in fwf* tests

    Several firewall filter tests has hardcoded 'vagrant' as a user name for
    access user on the VM. Changed to node->access_user.

commit ed5ab1487f37822db6a7478f76c0f3652776c389
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sat Dec 14 22:50:35 2019 +0200

    Fix IP vs IP_private

    Many tests use IP instead of IP_private which makes them failed in the
    AWS or GCloud environment.
    The same applies to get_conn_num() etc functions.

commit 0558aac23d303a675dc12d05b1766e698753b444
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Thu Aug 15 12:02:01 2019 +0300

    fix IP -> IP_private for some mysqlmon* testst

commit 5d9c70970d970eb995c8774d0088bd1c54ab76fe
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Sat Dec 14 20:20:51 2019 +0200

    Replace IP to IP_private in the maxscale-system-tests

commit b06cf3329af59ff100748691991213fe639f29e6
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Tue Nov 19 11:52:33 2019 +0200

    Remove spaces from value which were read from *_network_config

    MDBCI can put spaces around values in the *_network_config file which
    can cause ssh connection failures in the tests. To fix it removing all
    spaces from all values which were read from *_network_config

commit b3904f019847ef1db9d4ec9714ad9ef869fa0b01
Author: Timofey Turenko <timofey.turenko@mariadb.com>
Date:   Thu Dec 12 23:36:31 2019 +0200

    Increate default timeout for all system tests
2019-12-16 15:41:52 +02:00
Niclas Antti
e3402c42cc Merge branch '2.3' into 2.4 2019-12-16 09:37:01 +02:00
Niclas Antti
41c1ce441a fix bug in average 2019-12-16 09:36:20 +02:00
Niclas Antti
899e6db120 fix bug in average 2019-12-16 09:25:22 +02:00
Timofey Turenko
c04b7bc414 Fix typo in install_build_depends.sh 2019-12-14 22:13:30 +02:00
Johan Wikman
2c44ed0e6c Merge branch '2.3' into 2.4 2019-12-13 13:57:32 +02:00
Johan Wikman
fe92c4e408 Remove Cache filter storage_rocksdb documentation
The code is no longer present in MaxScale.
2019-12-13 13:57:21 +02:00
Markus Mäkelä
ad323bb837
Merge branch '2.3' into 2.4 2019-12-13 11:24:42 +02:00
Markus Mäkelä
e057c751cd
Improve handleError error messages
The hangup and error handlers now have unique messages. Although the
behavior in the handlers is practically the same in both cases, the cause
of the error is not the same.

If a socket error is present, it is added to the error message. If an
error is present, it should clearly show the reason why the TCP socket was
closed.

The is_fake_event boolean helps distinguish fake events from real
ones. This makes figuring out the real source of hangup events easier.
2019-12-13 10:50:04 +02:00
Markus Mäkelä
c1b5d70eea
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.
2019-12-13 10:49:36 +02:00
Markus Mäkelä
e909632e9e
MXS-2802: Route COM_RESET_CONNECTION to all servers
The purpose of a COM_RESET_CONNECTION is to reset the connection
states. This means it should be routed to all servers, the same as all
session state modifying commands.
2019-12-13 10:49:36 +02:00
Markus Mäkelä
934b865b25
Add missing commands to STRPACKETTYPE
The MariaDB specific commands were missing.
2019-12-13 10:49:36 +02:00
Markus Mäkelä
2b56737868
Fix debug assertion
The GWBUF_IS_CONTIGUOUS macro changed in 2.4 and it no longer allows null
arguments.
2019-12-13 10:49:36 +02:00
Markus Mäkelä
90f7c69f9d
Fix database renaming with no default database
If no default database was given, it was possible that the code would end
up in an endless loop.
2019-12-13 10:49:35 +02:00
Esa Korhonen
44664132bc MXS-2792 Improve monitor script documentation
Apparently the previous script example was not working. Moved the
updated example to Monitor-Common.md.
2019-12-13 10:38:07 +02:00
Timofey Turenko
da682b7777 Fix trailing whitespace in install_build_deps.sh 2019-12-12 23:31:38 +02:00
Markus Mäkelä
2f3afa943c
Add missing quotes to REST API documentation
The example data is JSON, not JavaScript, which means that object keys
must be double-quoted.
2019-12-12 10:09:12 +02:00
Timofey Turenko
ba46cb4434 Enable 'PowerTools' yum repo if it is present
In CentOS8 some -devel packages are moved to PowerTools repository which
is disabled by default. install_build_depends now checks if this repo
is in the repolist then add enablerepo=PowerTools to the yum command
2019-12-11 17:35:32 +02:00
Timofey Turenko
2fc42fca1e Remove Docker installation from build script
Installation of Docker is removed from build script because it is done
in the not very reliable way and can fail and cause build failure.
E.g. this installation causes conflict with existing Docker.
2019-12-11 13:08:27 +02:00
Niclas Antti
450ffaa169 MXS-2590 SmartQuery system test 2019-12-10 15:54:52 +02:00
Markus Mäkelä
d44aff6c3d
Merge branch '2.3' into 2.4 2019-12-10 11:12:41 +02:00
Markus Mäkelä
7be6ee1616
MXS-2789: Make stale journal messages notifications
These events are of no actual consequence and can be safely ignored. It is
simply informational.
2019-12-10 11:11:05 +02:00
Markus Mäkelä
d7618676d1
Merge branch '2.3' into 2.4 2019-12-10 10:04:52 +02:00
Markus Mäkelä
5ab6c472a0
Fix parameter name for kerberos_setup_ssl config 2019-12-10 09:48:58 +02:00
Markus Mäkelä
cb4e43b05a
MXS-2794: Log changes in loaded users
By checking whether the users have changed whenever they are reloaded, we
improve the visibility of the user reloading process. Using a checksum
allows us to easily compress the information with acceptable loss of
accuracy. Using a CAS loop prevents duplicate messages without losing any
updates even if multiple user reloads result in different outcomes.
2019-12-10 09:41:42 +02:00
Markus Mäkelä
e36c7efa25
MXS-2785: Report PCRE2 errors
The substitution string could cause errors.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
b32546e839
MXS-2785: Add rewrite test
The test checks that database rewriting works.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
1ef130a870
MXS-2785: Update binlogfilter documentation
Updated the documentation with the regex changes and listed some of the
caveats of rewriting SQL with regular expressions.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
689a284892
MXS-2785: Make rewrite_src a regular expression
The use of a regular expression allows multiple rewrite rules to be
combined into one. This allows more versatile conversions but, given the
simple nature of regular expressions, also makes accidental changes more
likely.

Addd mxs::pcre2_substitute that is a more C++-friendly version of
mxs_pcre2_substitute to make. This makes string replacement a lot easier
to do when the source and destination are not C strings.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
f3f2748490
MXS-2785: Document database rewriting
Documented the new features and the limitations that exist with it.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
d23f0366a8
MXS-2785: Prevent broken replication setups
When rewrite_src and rewrite_dest have different lengths, the slave must
use GTID based replication. This removes the need for one-to-one matching
between the slave's relay log and the master's binlog which gets broken
when event lengths are modified due to event rewriting.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
3de5e4edcd
MXS-2785: Allow event size changes due to rewrites
The replication events use a redundant format that has both the length of
the event and the position of the next event. The length can be modified
so that the next event position of the previous event and the length of
the curren event can be different. This includes overlap of the events
where the next event position of an event is "inside" the current event.

The next event position must retain its original value as that allows
replication slaves to reconnect with the correct position when file and
position based replication is used. For GTID replication, the slave asks
for the coordinates from the master and uses those.

When a slave receives a heartbeat event from a master, it checks that the
binlog name matches and that the next event position in the event is not
behind the slave's relay log position. These events must be modified to
contain a fake next event position that will never be reached by the
slave. This makes sure that the simple sanity checks never fail even if
we've caused the slave's relay log to be ahead of the master's binlog.
2019-12-09 17:53:59 +02:00
Markus Mäkelä
babce13ec6
Add GWBUF pretty-printing
The gwbuf_hexdump_pretty displays the hex contents of the buffer alongside
the human-readable version of it. The text version helps identify parts of
the buffer that contain text which makes protocol data decoding easier.
2019-12-09 17:53:58 +02:00
Markus Mäkelä
e829cae8b1
MXS-2785: Add rewrite_src and rewrite_dest parameters
The parameters allow rudimentary database rewriting in the replication
stream. This is still very limited as the replacement must have the same
length as the original. In theory it could be shorter without causing
problems but making it longer is not easy.
2019-12-09 17:53:58 +02:00
Johan Wikman
c480a44852 Merge branch '2.3' into 2.4 2019-12-05 16:54:44 +02:00
Johan Wikman
e673c3eab0 MXS-2788 Use case-insensitive string comparisons
When names are matched in rules and in resultsets, case insensitive
matching must be used.
2019-12-05 13:44:18 +02:00
Johan Wikman
694c0e784b MXS-2788 Add test that reveals problem
String comparison when checking whether a columns should be masked
is made in a case-insensitive way.
2019-12-05 13:02:05 +02:00
Johan Wikman
155ac8fd01 Merge branch '2.3' into 2.4 2019-12-05 10:48:23 +02:00
Johan Wikman
4f91d8aa77 Merge branch '2.3.15' into 2.3 2019-12-05 10:47:38 +02:00
Johan Wikman
578004677f Update 2.3.15 release date 2019-12-05 10:36:48 +02:00
Markus Mäkelä
5d1c7e88c7
Merge branch '2.3' into 2.4 2019-12-05 10:21:41 +02:00