10173 Commits

Author SHA1 Message Date
Marko
571d52f557
Typo fix in logthrottling_test 2018-07-26 10:59:53 +03:00
Marko
4dc1638f78
Silence the -Wunused-result warning
-Wunused-result warning in test_logthrottling.cc was causing error when
trying to build MaxScale from source. This warning can be silenced with by
putting the function triggering the warning in if-clause.
2018-07-26 10:59:53 +03:00
Markus Mäkelä
e64e4bc34f
Use the word REST API in documentation
The HTTP admin interface was ambiguous.
2018-07-26 10:59:53 +03:00
Esa Korhonen
3243f741a0 MXS-1961 Standalone master loses master status when an alternative master emerges
Fixes the bug by requiring that only running slaves are considered when choosing a master.
2018-07-26 10:37:30 +03:00
Markus Mäkelä
e2a913013a
Update release procedure documentation
The documentation contents and upgrading documents no longer has a link to
the release notes.
2018-07-25 00:11:57 +03:00
Markus Mäkelä
10115601ca
Add 2.2.12 release notes
Added release notes for the 2.2.12 release.
2018-07-25 00:07:09 +03:00
Markus Mäkelä
4b7cd7a281
Dump queue contents on unexpectedly NULL buffer
When the query queue does not contain a complete packet
(i.e. modutil_get_next_MySQL_packet return NULL), an informative dump of
how many bytes and what is stored is logged.
2018-07-24 09:51:48 +03:00
Markus Mäkelä
ea5c5f3a07
Never return NULL from gwbuf_make_contiguous
By aborting the process if memory runs out when a buffer needs to be made
contiguous, we rule out other, more subtle, errors. Failing as soon as a
possible when memory allocation fails gives better error messages.
2018-07-24 09:51:47 +03:00
Markus Mäkelä
896c7deb03
Use gwbuf_make_contiguous only with non-NULL buffers
A NULL buffer should never be made contiguous as that points to a flaw in
program logic.
2018-07-24 09:51:47 +03:00
Markus Mäkelä
37f32464f2
Rewrite mxs564_big_dump
Streamlined the test to perform as much testing as fast as possible. The
gradual ramp up did not provide any concrete benefits compared to testing
everything at once.

Replaced structures with C++11 alternatives where possible and removed
unused, redundant or dead code.
2018-07-24 09:51:47 +03:00
Markus Mäkelä
bbe4f42935
Add more packet splitting debug assertions
Having more debug assertions in functions that split packets guarantees
that they work as expected.
2018-07-24 09:51:47 +03:00
Markus Mäkelä
d68f20b75b
Also copy version files for MaxCtrl builds
When MaxCtrl is being built, the source is copied into the build directory
to prevent polluting the source tree with node_modules. This means that
any relative references MaxCtrl builds make outside of the maxctrl
directory must be copied to the build directory.
2018-07-24 09:51:46 +03:00
Markus Mäkelä
21eef8a670
MXS-1985: Kill connections inside workers
The LocalClient micro-client required a reference to the session that was
valid at construction time. This is the reason why the previous
implementation used dcb_foreach to first gather the targets and then
execute queries on them. By replacing this reference with pointers to the
raw data it requires, we lift the requirement of the orignating session
being alive at construction time.

Now that the LocalClient no longer holds a reference to the session, the
killing of the connection does not have to be done on the same thread that
started the process. This prevents the deadlock that occurred when
concurrect dcb_foreach calls were made.

Replaced the unused dcb_foreach_parallel with a version of dcb_foreach
that allows iteration of DCBs local to this worker. The dcb_foreach_local
is the basis upon which all DCB access outside of administrative tasks
should be built on.

This change will introduce a regression in functionality: The client will
no longer receive an error if no connections match the KILL query
criteria. This is done to avoid having to synchronize the workers after
they have performed the killing of their own connections.
2018-07-24 09:51:46 +03:00
Markus Mäkelä
101dad74a7
MXS-1985: Add debug assertions to dcb_foreach
The dcb_foreach function is not safe to use from multiple threads at the
same time. This should be asserted by checking that the function is called
only from the main worker.

The addition of this assertion also implies that only administrative
operations should use the dcb_foreach function. To accommodate this
change, the KILL command iteration needs to be adjusted.
2018-07-24 09:51:45 +03:00
Markus Mäkelä
30ac15817f
Assert that query queue contains complete packets
The query queue in readwritesplit must not contain partial packets. If it
does, something is broken as only complete packets should ever be in it.
2018-07-24 09:51:45 +03:00
Markus Mäkelä
ee6e2b28b2
MXS-1985: Add concurrent KILL test case
The test case runs parallel KILL queries and reproduces the problem.
2018-07-24 09:51:35 +03:00
Markus Mäkelä
b5584e3fd0
Backport test utility functions
The resultset processing functions are helpful in writing tests that
process resultsets.
2018-07-24 09:51:35 +03:00
Markus Mäkelä
6b8d9dc5d9
Print an error on invalid request JSON
When a request to the REST API is made with invalid JSON, it's hard to see
why the request fails due to the fact that no error is sent.
2018-07-24 09:51:35 +03:00
Markus Mäkelä
609a6723a8
MXS-1950: Log error on failed COM_CHANGE_USER
If a client is executing a COM_CHANGE_USER command and the
reauthentication of the client fails, no error message would be logged
about the failure of the reauthentication process and only a routing
failure message would be logged.
2018-07-24 09:51:33 +03:00
Markus Mäkelä
bf3a683395 Update MariaDB-Monitor.md
Added missing RELOAD privilege to monitor docs.
2018-07-18 16:28:45 +03:00
Markus Mäkelä
ddcaa5603b Update Configuring-MariaDB-Monitor.md
Added the missing RELOAD privilege.
2018-07-18 16:28:45 +03:00
Markus Mäkelä
7f1f65b411 Update Configuring-MariaDB-Monitor.md
Added a note to monitor creation tutorial about automated failover.
2018-07-18 16:28:45 +03:00
Markus Mäkelä
f41cbaf2fc Update MaxScale-Tutorial.md
Added a clarifying comment about where the users must be created.
2018-07-18 16:28:45 +03:00
Markus Mäkelä
8d9ccce2dd
Fix in-source build of MaxCtrl
The npm install command must generate the version.js file in order for the
in-source builds to work.
2018-07-17 13:05:52 +03:00
Markus Mäkelä
25e2e1b7c6
MXS-1976: Reword explanation
Made the wording clearer.
2018-07-17 12:32:59 +03:00
Markus Mäkelä
f77bf24df9
Check remaining query length in SetSqlModeParser
SetSqlModeParser would read uninitialized memory if a query consisting of
only comments would be executed.
2018-07-16 16:06:34 +03:00
Markus Mäkelä
4fb4ed416b
MXS-1977: Fix protocol and readwritesplit memory leaks
The protocol could leak memory in rare cases where several commands were
queued at the same time. Readwritesplit also didn't free the memory it
acquired via qc_get_table_names.
2018-07-16 06:07:14 +03:00
Markus Mäkelä
9b1d1303ce
MXS-1977: Archive session command on completion
The legacy session command implementation is still partially used and a
cleanup call was missing. This should be removed in the next major
release.
2018-07-15 21:17:39 +03:00
Markus Mäkelä
19a349a4a8
MXS-1976: Explain shutdown service behavior
The process of stopping a service will not prevent new connections from
being created. The documentation needs to be extended so that the meaning
of `accepted` is explicitly and clearly stated.
2018-07-15 21:04:03 +03:00
Markus Mäkelä
2d4dbb2117
Refer to runtime configuration in the configuration guide
The configuration guide now links to the runtime configuration in the TOC
instead of the deprecated legacy configuration reloading. The new section
lists the currently supported methods for altering the configuration at
runtime.
2018-07-09 21:09:16 +03:00
Markus Mäkelä
a2ca41b1c7
Document zero as a valid value for connection_timeout
Since the parameter accepts a zero value, which means that the parameter
should not be used, should be documented.
2018-07-09 15:29:13 +03:00
Markus Mäkelä
222aa9c277
Expect mxs1958_insert_priv to fail
The test should fail as it hasn't been fixed yet.
2018-07-09 15:29:13 +03:00
Markus Mäkelä
b583f6149a
Update Administration-Tutorial.md
Removed manual TOC, updated and combined the starting and stopping sections,
removed leading space from code blocks.
2018-07-09 15:29:03 +03:00
Markus Mäkelä
2b5825b040
Update MariaDB-MaxScale-Installation-Guide.md
Updated links, removed redundant chapters about cluster types and replaced
them with a link to the main tutorial, added maxctrl to the administration section.
2018-07-07 09:47:16 +03:00
Markus Mäkelä
2df5763b6c
Add configuration exporting
The runtime configuration of a MaxScale can now be exported to a single
file. This allows modifications made via runtime configuration commands to
be "committed" for later use.
2018-07-07 09:28:50 +03:00
Markus Mäkelä
4a215b9ca2
MXS-1961: Add test case
Added a test case that reproduces the problem.
2018-07-07 09:28:50 +03:00
Markus Mäkelä
690a111f37
Updated README.md
Updated the README to point to various documents that help set up
MaxScale. Also removed the somewhat incorrect information about the
technical implementation details.
2018-07-07 09:27:34 +03:00
Markus Mäkelä
a1b5852ad0
Check README in check_links.sh
The script now checks the README document for broken links.
2018-07-07 09:27:00 +03:00
Markus Mäkelä
cb05199bac
Stop MaxScale before fixing replication
Before the state of the backend servers is checked, MaxScale needs to be
stopped to prevent the automated failover from interfering in the start-up
process.
2018-07-05 21:03:57 +03:00
Markus Mäkelä
5c610503ba
MXS-1949: Add test case
Added a test case that verifies the bug is fixed.
2018-07-05 13:47:08 +03:00
Markus Mäkelä
f44d305a46
MXS-1949: Fix user injection warning
If a service has no active servers and users are injected, a warning would
be logged. This is a misleading warning if the service has no servers and
should only be logged if the failure to load any users is an unexpected
situation.
2018-07-05 12:49:46 +03:00
Markus Mäkelä
33fa9b26fe
Make version counter in mlist_t volatile
The log manager is the only one that uses the mlist_t versioned list. The
counter that keeps track of the version number was not modified using
atomic operations meaning that the compiler is free to optimize away parts
of the lock-free versioning mechanism that uses it.

To prevent this optimization, the variable is declared volatile. A rewrite
is direly needed but it cannot be done in 2.2.
2018-07-05 12:47:28 +03:00
Markus Mäkelä
f5110209f7
MXS-1942: Use MaxScale version in MaxCtrl
Displaying the MaxScale version helps identify which package the
executable was bundled with. As the MaxCtrl source is a part of MaxScale,
there's no need for separate versioning.
2018-07-05 12:47:28 +03:00
Markus Mäkelä
9e039ed024
Fix typo in DEB install scripts
The package suffix was wrong.
2018-07-05 12:01:38 +03:00
Markus Mäkelä
7954de0da6
Always log commit ID
There's no good reason to not include the commit ID in release build
startup messages.
2018-07-05 12:01:38 +03:00
Markus Mäkelä
bbf3909296
MXS-1958: Add test case
The test case verifies that the problem exists.
2018-07-05 12:01:38 +03:00
Markus Mäkelä
d301109b1a
Update release document
Use more precise git commands for pushing a single tag.
2018-07-05 12:01:38 +03:00
Johan Wikman
f1d7303919 Update 2.2 version number 2018-07-05 09:44:13 +03:00
Johan Wikman
7765aff74b Update 2.2.11 release date 2018-07-05 09:38:09 +03:00
Markus Mäkelä
1aa5dcf659
Do rsync without --delete
rsync with the --delete flag will destroy artifacts generated by other
jobs. This broke the build_all job.
2018-07-04 15:41:18 +03:00