12806 Commits

Author SHA1 Message Date
Markus Mäkelä
418a1f5210
MXS-2584: Assert that workers are initialized
The initialization must always be done before a call to RoutingWorker::get
is done.
2019-07-01 16:37:55 +03:00
Markus Mäkelä
b2019ea18e
Correctly reset PS continuation state
The state was modified only by PS commands.
2019-07-01 10:33:18 +03:00
Markus Mäkelä
4954c7f6b7
Fix sending of unknown PS error
The error was only generated for COM_STMT_EXECUTE commands when all PS
commands should trigger it. In addition, large packets would get sent two
errors upon the arrival of the trailing end.
2019-07-01 10:25:41 +03:00
Markus Mäkelä
0f7c1aa418
Improve mxs1776_ps_exec_hang
Syncing the slaves should prevent replication lag from affecting the
test. The added logging will help determine what the error was that caused
the failure.
2019-07-01 10:21:07 +03:00
Markus Mäkelä
40f35618ad
MXS-2562: Fix out-of-order error during COM_CHANGE_USER
If an error is generated while a COM_CHANGE_USER is being done, it would
always use the sequence number 1. To properly handle this case and send
the correct sequence number, the COM_CHANGE_USER progress needs to be
tracked at the session level.

The information needs to be shared between the backend and client
protocols as the final OK to the COM_CHANGE_USER, with the sequence number
3, is the one that the backend server returns. Only after this response
has been received and routed to the client can the COM_CHANGE_USER
processing stop.
2019-06-28 20:25:31 +03:00
Markus Mäkelä
3b6387c952
MXS-2562: Stop immediately on mid-resultset failure
If a server fails mid-resultset, there's not a lot we can do to recover
the situation. A few cases could be handled (e.g. generate an ERR if the
resultset has proceeded to the row processing stage) but these fall
outside the scope of the original issue.
2019-06-28 20:25:31 +03:00
Markus Mäkelä
74d15cee09
MXS-2562: Always send errors with sequence number 1
As is explained in MDEV-19893:

   Client reads from socket, gets the packet from 1. with seqno=0, which
   it does not expect, since seqno is supposed to be incremented. Client
   complains, throws tantrums and exceptions.

To cater for clients that do not expect out-of-bound messages
(i.e. server-initiated packets with seqno 0), all messages generated by
MaxScale should use at least sequence number 1.
2019-06-28 20:25:31 +03:00
Markus Mäkelä
5ab5e914e7
MXS-2582: Deep-copy PS buffers in RWBackend::write
Deep-copying prevents subsequent modifications done by the caller from
affecting the data that can be potentially stored in the write queue of
the backend's DCB.
2019-06-28 09:46:15 +03:00
Markus Mäkelä
e927366995
Merge branch '2.2' into 2.3 2019-06-28 09:27:56 +03:00
Markus Mäkelä
42c37585f4
Throttle query retry attempts
It was possible that a one-second outage that caused immediate rejection
of network connections would cause all of the query retry attempts to fail
within a very short period of time. By preventing rapid reconnections,
query_retries is more effective as an error filtering mechanism.
2019-06-28 09:27:20 +03:00
Timofey Turenko
b796351b2c make apt non-interactive in install_build_deps.sh
In Ubuntu Bionic there is need to update libssl which causes system services restart
and apt asks user to allow this restart. It cases build script to hang and build fails due to timeout.
Additional dpkg options and DEBIAN_FRONTEND=noninteractive solves the problem
2019-06-28 00:15:28 +03:00
Esa Korhonen
d8790fa3e7 Merge branch '2.2' into 2.3 2019-06-27 14:20:42 +03:00
Markus Mäkelä
7d3c25200e
Merge branch '2.2' into 2.3 2019-06-27 14:10:48 +03:00
Esa Korhonen
b4289224de Avoid using SQLITE_OPEN_URI
Centos6 uses a very old version of SQLite without support for URI filenames.
PAM authenticator must use a file-based database.
2019-06-27 13:59:05 +03:00
Markus Mäkelä
8a749dc627
MXS-2521: Fix build failure
The get_target_type signature for the definition was different from the
declaration.
2019-06-27 12:48:03 +03:00
Markus Mäkelä
5eba688c1b
MXS-2521: Detect COM_STMT_EXECUTE without metadata
If a COM_STMT_EXECUTE has no metadata in it and it has more than one
parameter, it must be routed to the same backend where the previous
COM_STMT_EXECUTE with the same ID was routed to. This prevents MDEV-19811
that is triggered by MaxScale routing the queries to different backends.
2019-06-27 08:29:30 +03:00
Markus Mäkelä
a6617f52fc
MXS-2578: Remove installation of /var/lib/maxscale
The directory was installed as the root user but later on in the
installation process the owner would be changed to the maxscale user. This
causes some validation programs to fail as they expect installed files to
retain the original ownership.
2019-06-27 08:25:12 +03:00
Markus Mäkelä
83e276ebd3
MXS-2521: Fix the test
Fixed the test to correctly set the parameters and also to first verify
that a direct connection works before doing the test via MaxScale.
2019-06-27 08:25:12 +03:00
Markus Mäkelä
2e843375bb
Merge branch '2.2' into 2.3 2019-06-27 08:19:47 +03:00
wuzang.hdp
5c762bb841 misc fix 2019-06-27 08:17:42 +03:00
wuzang.hdp
51ce3c53fd shift 32 2019-06-27 08:17:42 +03:00
wuzang.hdp
6b31b80e76 fix wrong assert 2019-06-27 08:17:42 +03:00
wuzang.hdp
8d50450b5a MXS-2521:Route subseqenct COM_STMT_EXECUTE to the same server which first COM_STMT_EXECUTE was executed on 2019-06-27 08:17:42 +03:00
Markus Mäkelä
25a076d072
Fix buffer sizes in PS extraction code
The code used 4 byte buffers for 2 byte values.
2019-06-26 15:49:50 +03:00
Markus Mäkelä
991067372d
Improve systemd check error message
The error now displays the correct package name for systems that use RPMs.
2019-06-26 15:49:50 +03:00
Markus Mäkelä
6cc0d43cb2
Merge branch '2.2' into 2.3 2019-06-26 10:10:26 +03:00
Markus Mäkelä
67d82146f1
Fix packet length assertion
The `used_len + len` can be the same as `total_len`.
2019-06-26 09:19:24 +03:00
Markus Mäkelä
88dae197b0
Make packet boundary assertion less costly
mxs::Buffer::iterator is not a random-access iterator and hence will have
linear cost. This is too costly to do on every packet with even moderately
sized resultsets.
2019-06-26 09:13:03 +03:00
Markus Mäkelä
d15582d26d
Allow posting to stopped workers
Due to there being no distinction between a temporarily stopped worker and
a permanently stopped one, we must allow posting of messages to stopped
workers.
2019-06-25 17:32:24 +03:00
Johan Wikman
d8cbdae83d Remove 2.2 release notes from 2.3 branch
By convention, we only retain the release notes for the current
branch.
2019-06-25 11:46:30 +03:00
Markus Mäkelä
42bf95eb82
Fix MariaDB startup commands
Newer systems only define the mariadb service.
2019-06-25 10:15:06 +03:00
Markus Mäkelä
873ea92915
Assert that packet is inside the buffer
The buffer containing the response should contain only complete packets.
2019-06-25 09:05:49 +03:00
Markus Mäkelä
a51e094cd5
Merge branch '2.2' into 2.3 2019-06-24 15:07:18 +03:00
Markus Mäkelä
7fb268f1a7
MXS-2575: Fix REST-API error propagation
The errors are now correctly sent even with requests that upload data.
2019-06-24 14:37:40 +03:00
Markus Mäkelä
7117ab4719
MXS-2574: Prevent alterations to current user
Due to the fact that the alteration is emulated by deletion and creation
of the user in question, the current user cannot be altered.
2019-06-24 13:06:40 +03:00
Esa Korhonen
9d06ff8402 Cleanup basic tutorials
Rephrased some of the text. Moved some parts to the general tutorial to avoid
repeating it in the two specialized tutorials.
2019-06-24 12:41:10 +03:00
Markus Mäkelä
5f3ff7d1be
MXS-2521: Add test case
The test case doesn't reproduce the problem due to MDEV-19811 getting in
the way but it is likely to reproduce it once that bug has been avoided.
2019-06-24 12:33:49 +03:00
Markus Mäkelä
f9eef8f44c
Fix configuration guide documentation
Fixed limitations section, the heading depths and the document name,
corrected localhost_match_wildcard_host, added deprecation notes where
required.
2019-06-24 12:32:58 +03:00
Markus Mäkelä
dbc321cbbe
Merge branch '2.2' into 2.3 2019-06-24 12:20:19 +03:00
Markus Mäkelä
1cb13582ff
Fix worker state debug assertion
Stopped workers will receive messages.
2019-06-24 11:03:50 +03:00
Markus Mäkelä
be429c2c57
MXS-2490: Always restore original statement ID
By always restoring the ID, we are guaranteed to only store the query in
the form that it was originally sent in. This should be changed so that
the ID that the client sends can be used as-is in the backends.
2019-06-20 14:27:04 +03:00
Markus Mäkelä
805be70a78
Add more information to rwsplit info messages
The statement ID for all binary protocol statements and the error given to
handleError are now logged.
2019-06-20 14:27:03 +03:00
Markus Mäkelä
301b1b63ab
MXS-2569: Always terminate schemas with newlines
If the stored file didn't have a newline in the schema, the schema and the
first row would be on the same line.
2019-06-20 12:32:30 +03:00
Markus Mäkelä
7673ee685d
Distinguish stopped and finished workers
By having a separate FINISHED state and a STOPPED state, it is possible to
know at which point in the worker's lifetime an event is done. Posting of
messages before a worker is started is allowed but posting them after the
worker has stopped is not.

This fixes avrorouter related failures and all other failures that stem
from worker messages being ignored at startup.
2019-06-20 12:32:30 +03:00
Markus Mäkelä
dd944c7302
MXS-2568: Always enable LOCAL INFILE for testing
The automatic detection of LOCAL INFILE added in connector-c 3.0.9
requires that the option is enabled explicitly.
2019-06-20 12:32:30 +03:00
Esa Korhonen
39df829384 Don't kick out super-users when performing rejoin
When rejoining a server, preventing writes is not as essential as in switchover.
2019-06-19 17:14:39 +03:00
Markus Mäkelä
3d8475f8ed
Merge branch '2.2' into 2.3 2019-06-19 12:37:23 +03:00
Markus Mäkelä
35b5f2099b
Regenerate MaxCtrl documentation 2019-06-19 10:44:16 +03:00
Markus Mäkelä
96d5c575f8
Document required create service parameters
When a service is created via MaxCtrl, the `user` and `password`
parameters must be defined. This was not documented in the command help
output.
2019-06-19 10:44:16 +03:00
Markus Mäkelä
27fb397041
MXS-2547: Do shutdown on main worker
By stopping the REST API before the workers and moving the shutdown to the
same worker that handles REST API requests, we prevent the hang on
shutdown. This also makes the signal handler signal-safe.
2019-06-19 10:31:47 +03:00