13628 Commits

Author SHA1 Message Date
Johan Wikman
f478386e47 MXS-2518 Document Clustrix and slave_selection_criteria 2019-06-13 13:45:14 +03:00
Johan Wikman
0b10b27ffd MXS-2518 Check connection distribution with Clustrix
Readconnroute, with default 'router_options', as well as readwritesplit
 should cause the connections to be distributed evenly across all nodes.
2019-06-13 13:45:14 +03:00
Johan Wikman
62daabe682 MXS-2518 Document Clustrix and router_options
With Clustrix, in whose case all nodes will be masters, using
'router_options=master' with readconnroute will cause only one
node to be used.
2019-06-13 13:45:14 +03:00
Esa Korhonen
6ee9736803 Clean up scheduled event handling
Removes some duplicated code.
2019-06-13 13:19:48 +03:00
Johan Wikman
d03e025046 MXS-2553 Allow parenthesis around SELECT
With this change, a parenthesized top-level SELECT, such as
"(SELECT f FROM t)" will be fully parsed. Before this change,
the statement was classified as invalid and would thus have
been sent to the master.

With this change also statements like

    (SELECT f FROM t1) UNION (SELECT f FROM t2)

will be correctly classified, although only partially parsed.
2019-06-13 10:42:46 +03:00
Marko
c418bf81e1 MXS-2493 Add maxctrl show dbusers <service> 2019-06-12 23:49:08 +03:00
Markus Mäkelä
10272ce633
Merge branch '2.3' into develop 2019-06-12 18:15:37 +03:00
Markus Mäkelä
239c4a8615
MXS-2549: Install prelink config file
The prelink configuration file should prevent maxctrl from being corrupted
by it.
2019-06-12 17:49:41 +03:00
Markus Mäkelä
cd1b2e8748
Log server version when it changes
Knowing what the server version is can help rule out some
problems. Logging it whenever it changes also helps figure out when
upgrades took place.
2019-06-12 17:26:58 +03:00
Johan Wikman
9c1c8053b9 Merge branch '2.3' into develop 2019-06-12 14:33:07 +03:00
Johan Wikman
74ef8a9591 Update 2.3 maintenance version 2019-06-12 14:28:37 +03:00
Johan Wikman
493155127b Merge branch '2.3.8' into 2.3 2019-06-12 14:27:22 +03:00
Johan Wikman
208377b262 Update 2.3.8 release date 2019-06-12 14:26:15 +03:00
Markus Mäkelä
1f46f1bfca
Merge branch '2.3' into develop 2019-06-12 12:24:07 +03:00
Markus Mäkelä
bb92d61a1b
Fix KILL command packet boundary detection
If a packet with a KILL query was followed with another packet in the same
network buffer, the code wouldn't work as it expected to receive only one
packet at a time.
2019-06-12 12:20:26 +03:00
Markus Mäkelä
7470a58a32
Fix release mode build failures
Fixed mxb_assert_message and one dcb_printf failure.
2019-06-12 12:15:47 +03:00
Johan Wikman
a0fcf67993 Merge branch '2.3' into develop 2019-06-12 11:29:03 +03:00
Johan Wikman
b98ff222f0 Merge branch '2.3.8' into 2.3 2019-06-12 11:26:33 +03:00
Markus Mäkelä
9fd0d38797
Merge branch '2.3' into develop 2019-06-12 08:59:36 +03:00
Markus Mäkelä
7fe18a0488
Add fatal signal handlers for unit tests
This way debug assertions print a full stacktrace for unit tests.
2019-06-11 21:38:47 +03:00
Markus Mäkelä
470968a296
Fix unit test failures
The new net_write_timeout value needed to be explicitly defined for the
tests.
2019-06-11 21:38:47 +03:00
Markus Mäkelä
6166da76ea
Add arguments to mxb_assert_message
The macro can now be used to print runtime information in a printf-like
manner. This makes it easier to see exactly why an assertion has failed.
2019-06-11 21:30:45 +03:00
Markus Mäkelä
74f61c233d
MXS-2558: Reuse loaded users
When users are loaded, they can be reused across all routing workers.
2019-06-11 21:30:45 +03:00
Markus Mäkelä
6ca5143141
Make kill_query more robust
The test now uses an infinite loop in the SQL to make sure the execution
is interrupted.
2019-06-11 21:30:16 +03:00
Johan Wikman
814ae196e9 qc_sqlite: Replace strncpy with memcpy
On RHEL8 the former may give rise to incorrect

    error: 'char* strncpy(char*, const char*, size_t)' destination
    unchanged after copying no bytes [-Werror=stringop-truncation]
2019-06-11 20:14:58 +03:00
Esa Korhonen
d0e6921604 Improve switchover undo when new master fails
Now the monitor properly restores the old master by running promotion code on it.
Also, binlog is disabled when enabling server events.
2019-06-11 17:15:43 +03:00
Esa Korhonen
53606934a6 Merge branch '2.3' into develop 2019-06-11 16:35:26 +03:00
Esa Korhonen
95606370c8 MXS-2551 Do not print deprecated parameters into serialized config files
In MaxScale, a "deprecated" parameter is not in use and can be ignored.
Leaving the parameters out of serialized configuration files avoids warning
messages.
2019-06-11 15:55:35 +03:00
Markus Mäkelä
5b14e28fc8
Fix maxavrocheck build failure on Ubuntu Trusty
The return value of realpath should be checked even if it is pointless.
2019-06-11 14:15:06 +03:00
Johan Wikman
1e3da20409 Merge branch '2.3' into develop 2019-06-11 13:54:51 +03:00
Johan Wikman
acc5863fe2 MXS-2442 ':N' accepted as pos. parameter in Oracle mode 2019-06-11 13:53:09 +03:00
Johan Wikman
c68cb788cc MXS-2552 Update DISK plugin documentation 2019-06-11 13:21:17 +03:00
Johan Wikman
40851f8a30 MXS-2556 Use configured master 2019-06-11 12:07:27 +03:00
Johan Wikman
ba4099799f MXS-2556 Add persist_performance_data arg to smartrouter 2019-06-11 11:59:08 +03:00
Johan Wikman
04fdaf1fdb MXS-2556 Make config::Configuration aware of its object
The name of the object (i.e. the section name from the configuration
file), is now stored in the configuration object for that object.

That way, more contextual and hence morfe user friendly errors and
warnings can be generated.
2019-06-11 11:05:15 +03:00
Johan Wikman
df5377f135 MXS-2556 Check if TCP/IP socket is used and warn about it
If the server (a real one or a service exposed as a server) is
on the same machine as MaxScale, then for performance reasons
a Unix domain socket and not a TCP/IP socket should be used.
2019-06-11 10:48:42 +03:00
Johan Wikman
acdc3b2396 MXS-2556 Add master configuration handling to SmartRouter 2019-06-11 09:46:04 +03:00
Johan Wikman
68af4cb62e MXS-2556 Rename configure -> post_configure
Rename config::Configuration::configure() to
config::Configuration::post_configure(). Latter name makes it
unambiguously clear at what point the function is called.
2019-06-11 09:46:04 +03:00
Johan Wikman
a6b456dfbd MXS-2556 Add support for routers to new config mechanism 2019-06-11 09:46:04 +03:00
Johan Wikman
77197d2ce1 MXS-2556 Add Server type to new config mechanism
- Add test as well
- Sort test so that the types are tested in alphabetical order
2019-06-11 09:46:04 +03:00
Johan Wikman
b2f44cefe7 MXS-2556 Don't crash if authenticator not found 2019-06-11 09:46:04 +03:00
Markus Mäkelä
4716f5b48f
Fix buffer end pointer comparison in maxavro
The buffer pointer can point to the end pointer if it is the last value in
the buffer.
2019-06-11 09:44:27 +03:00
Johan Wikman
a2b046a482 MXS-2512 Use typenames consistently 2019-06-11 09:44:27 +03:00
Markus Mäkelä
ce3d7acf2d
Fix maxavrocheck path processing
A null path could be given if realpath failed to resolve the name. This
hides the actual reason of the failure making it harder to resolve it.
2019-06-11 09:44:27 +03:00
Johan Wikman
b09a4e676d MXS-2512 Do not recalculate information that exists
As the end of the error packet is known, it is better to pass
around an iterator to that instead of recalculating it.
2019-06-11 09:44:27 +03:00
Markus Mäkelä
5adc8fa5bd
Add missing HEAVY labels to big tests 2019-06-11 09:44:27 +03:00
Johan Wikman
9d1f094c45 MXS-2512 Add test for trx replay due to rollback
The test performs the following:

  CREATE tbl (x INT PRIMARY KEY)

  t1                            t2
  BEGIN                         BEGIN
  INSERT INTO tbl VALUES (1)
                                SELECT * FROM tbl FOR UPDATE

That will cause t2 to wait.

  INSERT INTO tbl VALUES (0)

That will cause t2 to be rolled back due to a deadlock.

Without transaction replay, the SELECT will return with an error.
With transaction replay, the deadlock error will be caught, the
transaction replayed and SELECT will return successfully.
2019-06-11 09:44:27 +03:00
Johan Wikman
b222a17ed9 MXS-2512 Update error information in additional place
An error may be returned directly or as part of a result set.
Both cases must be handled.
2019-06-11 09:44:27 +03:00
Johan Wikman
e1b611aa06 MXS-2512 Use existing information
As an error returned by the server is now stored inside RWBackend,
irrespective of whether it is returned solely or e.g. last after
a result set, there is no need to examine the GWBUF in rws, but
we can use the information that exists.
2019-06-11 09:44:27 +03:00
Johan Wikman
aa9b6cb8c5 MXS-2512 Store received error during backend processing
If a server returns an error, it will be retained inside RWBackend
so that it later is accessible without having to parse the GWBUF
again.
2019-06-11 09:44:27 +03:00