Commit Graph

10171 Commits

Author SHA1 Message Date
e64e4bc34f Use the word REST API in documentation
The HTTP admin interface was ambiguous.
2018-07-26 10:59:53 +03:00
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
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
10115601ca Add 2.2.12 release notes
Added release notes for the 2.2.12 release.
2018-07-25 00:07:09 +03:00
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
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
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
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
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
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
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
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
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
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
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
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
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
bf3a683395 Update MariaDB-Monitor.md
Added missing RELOAD privilege to monitor docs.
2018-07-18 16:28:45 +03:00
ddcaa5603b Update Configuring-MariaDB-Monitor.md
Added the missing RELOAD privilege.
2018-07-18 16:28:45 +03:00
7f1f65b411 Update Configuring-MariaDB-Monitor.md
Added a note to monitor creation tutorial about automated failover.
2018-07-18 16:28:45 +03:00
f41cbaf2fc Update MaxScale-Tutorial.md
Added a clarifying comment about where the users must be created.
2018-07-18 16:28:45 +03:00
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
25e2e1b7c6 MXS-1976: Reword explanation
Made the wording clearer.
2018-07-17 12:32:59 +03:00
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
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
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
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
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
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
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
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
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
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
4a215b9ca2 MXS-1961: Add test case
Added a test case that reproduces the problem.
2018-07-07 09:28:50 +03:00
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
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
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
5c610503ba MXS-1949: Add test case
Added a test case that verifies the bug is fixed.
2018-07-05 13:47:08 +03:00
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
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
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
9e039ed024 Fix typo in DEB install scripts
The package suffix was wrong.
2018-07-05 12:01:38 +03:00
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
bbf3909296 MXS-1958: Add test case
The test case verifies that the problem exists.
2018-07-05 12:01:38 +03:00
d301109b1a Update release document
Use more precise git commands for pushing a single tag.
2018-07-05 12:01:38 +03:00
f1d7303919 Update 2.2 version number 2018-07-05 09:44:13 +03:00
7765aff74b Update 2.2.11 release date 2018-07-05 09:38:09 +03:00
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
6b9ae5b220 Fix bug626
Removed the excessive comments in favor of a simplified description. Use
stack-allocated TestConnections and simplify assertions.

The main change is the different SQL used to update the user with the old
password. Direct modification of the `mysql`.`user` database isn't very
neat but it guarantees that the value is updated.
2018-07-04 15:41:17 +03:00
d98ffb5d0a Always stop MaxScale before test
The test should stop MaxScale at the start unless the manual debug flag is
given on the command line. This fixes the connection failure of mxs1719
but reveals a problem with the filter itself.
2018-07-04 13:51:10 +03:00