Commit Graph

9494 Commits

Author SHA1 Message Date
0a23d526ff fix check for 'service' command in the upgrade test 2017-12-05 11:19:47 +02:00
9f11fdd2c1 Fix test failures
Use larger BLOB type for mxs812_1, the inserted value exceeds the normal
BLOB size.

Add a baseline check into bulk_insert to verify that direct connections
work (at the moment they don't, needs an investigation).

Updated parameter names in failover_mysqlmon_mrm.

Modified avro_alter to prevent data type conversion errors.
2017-12-05 09:43:06 +02:00
c03ce7ac7f Use correct database name for SQLite
The :memory: database was misspelled as :memory without the trailing
colon. This caused an actual on-disk database to be created instead of an
in-memory one.
2017-12-05 09:43:06 +02:00
ba02ffb0db Move resource.cc internals into a anonymous namespace
All internal code is now inside an anonymous namespace to prevent their
use outside of the compilation unit.

Also fixed the wrong return type of ResourceWatcher::etag.
2017-12-05 09:43:06 +02:00
08689d3bb2 MXS-1539: Execute all REST API commands in a worker thread
Executing the commands inside a worker thread allows further improvements
to job queuing but mainly it fixes the problem of loading users when
listeners are allocated at runtime.

When a runtime listener was being created, it was allocated in the admin
thread whereas the listeners created at startup were allocated in the
"main" thread. This caused a minor difference in how administrative
functions were handled by the REST API and MaxAdmin. The only real problem
is that listener allocation depends on being done inside a worker thread
as it lazily initializes some resources.
2017-12-05 09:43:06 +02:00
74ae3d9ff3 MXS-1539: Actually assign the allocated member pointer
The memory for the rate limit struct was allocated but it was not assigned
for the service. Also corrected a false debug assertion in
service_refresh_users.
2017-12-05 09:43:05 +02:00
a2d275aca3 MXS-1539: Make refresh rate limitations thread-specific
The refresh rate limitations are now also thread-specific. This is
required when the authentication data is partitioned on a per thread
basis.
2017-12-05 09:43:05 +02:00
4194c1c558 MXS-1539: Preliminary implementation of thread-local user cache
The thread-local user cache removes most of the cross-thread communication
from the user authentication at the cost of increased memory use and extra
network usage when users are loaded.
2017-12-05 09:43:05 +02:00
513220805b MXS-1539: Remove useless handles
The client handle was never used.
2017-12-05 09:43:05 +02:00
f45a011dbe add MDBCI test scripts (#145) 2017-12-05 00:30:30 +02:00
c8b6838bce MXS-1555: Fix statement tracking for readwritesplit
The statement tracking was given the same buffer multiple times when a
large packet was spread across multiple buffers when a router with
RCAP_TYPE_STMT_INPUT was present.

The command tracking packet processing is redundant for routers that
require RCAP_TYPE_STMT as the same processing is done later when the
buffer is split into packets and routed. By using the split packets, the
protocol module can simplify the command tracking by a great deal for most
routers.
2017-12-04 14:49:13 +02:00
277ece53d0 Add assertion function to TestConnections
The TestConnections::assert behaves much like the normal assert function
by simply inverting the check for add_result.
2017-12-04 14:49:13 +02:00
046ed5c93d MXS-1513: mysql_mon.cc formatting changes
Ran astyle, cut some long lines.
2017-12-04 13:53:16 +02:00
c0ab80e459 MXS-1513: Cleanup some messages, change function names
No real functionality changes.
2017-12-04 12:53:09 +02:00
74e781a3c3 Update 2.1.12 ChangeLog, Upgrading and Release Notes 2017-12-04 11:50:17 +02:00
9addf93a08 Update 2.1 version number to 2.1.12 2017-12-04 11:43:14 +02:00
45834a89b5 MXS-1533: Rename "auto_join" to "auto_rejoin" 2017-12-04 09:59:29 +02:00
8084491d53 Fix build failure with GCC7
The format checks in GCC7 reported truncation in a snprintf call.
2017-12-04 09:56:50 +02:00
508ce3a703 MXS-1491: Failover can be executed manually
Also, renamed config setting "failover" to "auto_failover". Removed
setting "switchover" as it is now always enabled.
2017-12-04 09:41:00 +02:00
90f6d78a58 MXS-1533: Add automatic join feature
When enabled, the monitor will redirect servers to replicate from the
current master. Standalone servers and servers replicating from a slave
are redirected.
2017-12-04 09:37:16 +02:00
cf627203cb Fix issues revealed on CentOS6 2017-12-02 13:42:15 +02:00
574af7762d MXS-1545: handling of slave file EOF refactoring
MXS-1545: handling of slave file EOF refactoring.

Some slave/router state are now checked before any WARN/ERROR messages
about slave file EOF.

The missing “next_file” is always logged with warn.
2017-12-01 14:02:02 +01:00
5664cb8bf6 Fix protocol command tracking
The command byte was always read at an offset of 4 instead of the current
offset plus 4.
2017-12-01 11:30:13 +02:00
0506669738 Only refresh users on failed authentication
When backend authentication failed due to errors other than wrong
credentials, the users were unconditionally reloaded. This caused a spike
of activity whenever authentication failed for other reasons.

Also fixed the test that checks for this to look for the correct error
message.
2017-12-01 06:01:18 +02:00
96d9c47016 MXS-1553: Enforce SSL usage for monitors
If a server is configured to use SSL, then MaxScale should respect the
configuration and refuse to use a connection that is not encrypted.
2017-12-01 03:50:57 +02:00
8cce2b4b99 Fix binlogrouter configuration example
The configuration had a `servers=masterdb` line that was not supposed to
be there.
2017-11-30 18:03:45 +02:00
d4c0d74ab4 MXS-1530: check ANNOTATE_ROWS flag in connecting slave
MXS-1530: check ANNOTATE_ROWS flag in connecting slave.

In MariaDB 10.2.4 replicate_annotate_row_events and
binlog_annotate_row_events have default to ON: this change checks
whether the connecting slave is not has ANNOTATE_ROWS in
blr_slave_binlog_dump(), those ANNOTATE_ROWS events can be sent or not
to the slave.
2017-11-30 16:34:24 +01:00
f2a0cc8b31 Don't send hangup error on connection close
If the client has sent a COM_QUIT, the hangup error message should not be
written.
2017-11-30 17:25:06 +02:00
4cb50f48ad MXS-1533: Fix relay master identification and root master detection
Relay master servers must now have a running slave. Also, fix cluster master
detection in get_replication_tree().
2017-11-30 16:16:19 +02:00
016b0f69f7 MXS-1509: Initial implementation of test case
Added some code to detect server states in a consistent manner and created
the test. The multi-source replication appeared to cause problems for the
test system which needs to be resolved.

Added --force flags to most direct `mysql` calls to prevent errors from
stopping the processing of remaining commands.
2017-11-30 12:39:00 +02:00
d5d41349ae MXS-1509: Add ignore_external_masters parameter
The new parameter allows ignoring of master servers that are external to
the monitor configuration. This allows sub-trees of the actual replication
tree to be used as fully fledged replication trees.
2017-11-30 12:39:00 +02:00
7c2a173a17 MXS-1536: Always recreate TABLE_MAP objects
When a table map event is read after an alter table, the old TABLE_MAP
object contains old information. Due to this, as well as the added benefit
of making the code easier to read, the recycling of TABLE_MAP objects was
removed. In practice, there were no benefits to re-mapping the tables to a
different ID.
2017-11-30 12:38:43 +02:00
38d5bc5679 MXS-1462: Update Connector-C to 2.3.4
The issues with TLS were fixed by upgrading the connector to the latest
2.3 version.
2017-11-30 12:38:43 +02:00
a32789d4ac MXS-1536: Fix ALTER TABLE parsing
The ALTER TABLE parsing didn't properly handle escaped values and it used
the current database unconditionally.
2017-11-30 12:38:43 +02:00
764863cb3f MXS-1536: Add Annotate_rows event processing
The Annotate_rows events were not processed which caused the following
table map event to be ignored.

Also removed a false debug assertion. The byte count can be zero and the
pointer is not guaranteed to point to anything valid.
2017-11-30 12:38:43 +02:00
0ca04cb5d5 MXS-1536: Fix crash in CREATE TABLE
If a CREATE TABLE statement had a quoted keyword as the name of a field,
the calculated column count and actual column counts would differ.

In addition to this, oneline comments before the end of the statement
would truncate the SQL due to the fact that the whitespace was squashed
before the comment removal was done.
2017-11-30 12:38:43 +02:00
36129466e5 MXS-1545: fix file pointer reuse in blr_open_binlog
When binlog storage is TREE the check for existing BLFILE should use
gtid info in addition to strcmp
2017-11-30 09:47:02 +01:00
aa35b202ec Merge 2.1 into 2.2
Merge 2.1 into 2.2
2017-11-30 09:15:42 +01:00
2217091019 MXS-1546: revert commit e16eee0cc3c6307f732c2e43d995d3c86cdd67a7
MXS-1546: revert commit e16eee0cc3c6307f732c2e43d995d3c86cdd67a7

This code is not necessary in MaxScale 2.1
2017-11-29 18:22:05 +01:00
0c2846e48f MXS-1512 Update release notes 2017-11-29 12:41:34 +02:00
481892b452 MXS-1512 Add test case for cache options
Here's now tested that the cache properly deals with the configuration
setting "cache_in_transactions" and the current transaction state.
2017-11-29 12:41:34 +02:00
b225eeff2c MXS-1512 Allow autocommit and trx state to be set for a session
When mocking you want to be able to set explicitly how a filter
session should see the current context.
2017-11-29 12:41:34 +02:00
02cf284b61 MXS-1512 Add mock Backend class that can generate resultsets 2017-11-29 12:41:34 +02:00
6d66ffe9f7 Use FilterModule::ConfigParameters in test_dbfwfilter 2017-11-29 12:41:34 +02:00
9aa4a2d1ff MXS-1512 Create parameters object from default parameters 2017-11-29 12:41:34 +02:00
7ae2acecf7 MXS-1512 Take module object type as template argument
Makes it possible to move the module object pointer into the
SpecificModule template.
2017-11-29 12:41:34 +02:00
8a10b72e4d Merge 2.1 in 2.2
Merge 2.1 in 2.2
2017-11-29 11:30:33 +01:00
4ee9f54f5d MXS-1529 Ensure that config file is a file
If the provided configuration file argument does not refer to a
regular file, MaxScale refuses to start.
2017-11-28 15:56:59 +02:00
5c9d8c53d9 MXS-1529 Rename file_is_[readable|writable]
Rename file_is_[readable|writable] to path_is_[readable|writable]
as it makes the check for both files and directories.
2017-11-28 15:40:59 +02:00
6359b7983f MXS-1529 Prevent endless realloc loop
If the provided config path refers to a directory it can still
be opened and an attempt to read be made. However, as reading
will fail but end-of-file not be reached, we can't rely upon
'feof()' for detecting when to bail out.

As it is a user error to provide a directory as the config path,
that will be detected and deemed an error in a subsequent commit.
2017-11-28 15:33:50 +02:00