12562 Commits

Author SHA1 Message Date
Johan Wikman
640bf40eed MXS-2219 Make a non-URL async HTTP request READY
An asynchronous HTTP request for 0 URLs is immediately
in READY state.
2019-01-17 11:11:21 +02:00
Johan Wikman
89c059411d MXS-2219 Add health check threshold
Make it configurable how many times a node may fail to respond
on the health check port before it is considered to be down.
2019-01-17 11:11:21 +02:00
Johan Wikman
880842e55d MXS-2219 Perform cluster monitoring as well
Now the monitor
- will frequently ping the health port of each server
- less frequently check from system.membership the actual
  number of available nodes
and act accordingly.

Currently, the updated servers are the ones listed in the conf
file. Subsequently this will be changed so that the servers listed
in the configuration file are only used for bootstrapping the monitor
and server objects are then created dynamically according to what is
found in the cluster.
2019-01-17 11:11:21 +02:00
Johan Wikman
f7d97825fb MXS-2219 Add monitor_stash_current_status
The functions stores the current server status to the monitored
server's mon_prev_status and pending_status fields.

To be used at the start of the monitor loop, before the pending
status fields are updated.
2019-01-17 11:11:21 +02:00
Johan Wikman
7f6f5191cc MXS-2219 Update documentation
The clustrix monitor user must have SELECT grant on
- system.membership
- system.nodeinfo
2019-01-17 11:11:21 +02:00
Johan Wikman
994b76ff79 MXS-2219 Provide STL iterator for MXS_MONITORED_SERVER 2019-01-17 11:11:21 +02:00
Johan Wikman
a9fd9c92e2 MXS-2219 Add iterator adapter
Iterator adapter for making it possible to iterate over an
intrusive singly linked list in an STL fashion.
2019-01-17 11:11:21 +02:00
Markus Mäkelä
ebbb8a771c
Merge branch '2.3' into develop 2019-01-17 10:55:27 +02:00
Markus Mäkelä
92b50196ed
Merge branch '2.3.3' into 2.3 2019-01-17 10:49:37 +02:00
Markus Mäkelä
a469ef83b6
MXS-2217: Pick DCB owner before adding to epoll
There is a race condition between the addition of the DCB into epoll and
the execution of the event that initiates the protocol pointer for the DCB
and sends the handshake to the client. If a hangup event would occur
before the handshake would be sent, it would be possible that the DCB
would get freed before the code that sends the handshake is executed.

By picking the worker who owns the DCB before the DCB is placed into the
owner's epoll instance, we make sure no events arrive on the DCB while the
control is transferred from the accepting worker to the owning
worker.
2019-01-17 10:35:49 +02:00
Markus Mäkelä
a3fa2f8111
Merge branch '2.3' into develop 2019-01-16 16:31:14 +02:00
Markus Mäkelä
ba393dbfb2
Merge branch '2.3.3' into 2.3 2019-01-16 16:23:56 +02:00
Markus Mäkelä
519cd7d889
Don't call python3 directly
Calling it directly from the script adds a dependency on it and we don't
what that.
2019-01-16 16:19:35 +02:00
Markus Mäkelä
68d33a3ae4
MXS-2266: Add test case
Extended the existing tests to cover MXS-2266.
2019-01-16 16:19:35 +02:00
Markus Mäkelä
317166540f
MXS-2266: Close prepared statements with internal ID
The ID used to store the prepared statements uses the internal ID and
using the external ID caused unwanted memory use and a false warning.
2019-01-16 16:19:35 +02:00
Markus Mäkelä
39dc83f13c
Don't call python3 directly
Calling it directly from the script adds a dependency on it and we don't
what that.
2019-01-16 16:00:32 +02:00
Markus Mäkelä
7181ea4083
MXS-2266: Add test case
Extended the existing tests to cover MXS-2266.
2019-01-16 12:22:06 +02:00
Markus Mäkelä
ba40916d4a
MXS-2266: Close prepared statements with internal ID
The ID used to store the prepared statements uses the internal ID and
using the external ID caused unwanted memory use and a false warning.
2019-01-16 12:22:06 +02:00
Markus Mäkelä
f5f6a12484
Start Galera correctly
The Galera documentation tells us to use the galera_new_cluster command to
start a new Galera cluster. This should prevent the problems of nodes
failing to join the cluster either on the initial startup or after a node
goes down.
2019-01-16 10:01:58 +02:00
Markus Mäkelä
511f01a28d
MXS-2252: Add test case
Added a test case that verifies the correct user is used.
2019-01-16 09:43:50 +02:00
Markus Mäkelä
db98ecbaa1
MXS-2259: Fix double addition of DCBs to worker list
When poll_add_dcb was called for a DCB that once was polling system but
was subsequently removed, the DCB would appear twice in the worker's list
of DCBs. This caused a hang when the DCB was the last one in the worker's
list and dcb_foreach_local would be called.

To prevent the aforementioned problem, the DCBs are now added and removed
directly to and from the workers instead of indirectly via poll_add_dcb
and poll_remove_dcb.
2019-01-16 09:43:50 +02:00
Markus Mäkelä
57fe5ff56a
Fix error packet stringification function
The code read past the stack buffer.
2019-01-16 09:43:49 +02:00
Markus Mäkelä
021d48f94c
Log low-level reason and idle time on master failure
If the connection to the master is lost, knowing what type of an error
caused the call to handleError helps deduce what was the real reason for
it. Logging the idle time of the connection helps detect when the
wait_timeout of a connection is exceeded.
2019-01-16 09:43:49 +02:00
Esa Korhonen
d4674faa7d Convert maxscale/query_classifier.h to .hh
The header was not merged with queryclassifier.hh since the latter
does not include the former.
2019-01-15 18:18:39 +02:00
Esa Korhonen
45bfbbdd9e Convert maxscale/protocol.h to .hh 2019-01-15 17:26:26 +02:00
Esa Korhonen
b0663f0b29 Convert maxscale/ssl.h to .hh 2019-01-15 17:12:32 +02:00
Esa Korhonen
6a23015b64 Convert avro headers to .hh
Required for converting maxscale/buffer.h.
2019-01-15 16:38:10 +02:00
Esa Korhonen
dae99b2acd Merge branch '2.3' into develop 2019-01-15 15:57:06 +02:00
Esa Korhonen
8cef8b9472 Compile MariaDBMonitor unit tests only if flag is set 2019-01-15 15:44:21 +02:00
Markus Mäkelä
fb2a44f62d
Fix filter template documentation
Filter options are no longer used.
2019-01-15 14:10:55 +02:00
Markus Mäkelä
f38ee85d5b
Allocate match_data only when necessary
If the session doesn't match the required username or remote address, the
match data is not allocated. This also doubles as a replacement of the
active member variable.
2019-01-15 14:10:55 +02:00
Markus Mäkelä
38879e6d0f
Move active PCRE2 data structures into RegexSession
The match_data object should not be used by multiple threads at the same
time as it stores the offsets into the query string for matches.
2019-01-15 14:10:55 +02:00
Markus Mäkelä
f9704bda9b
Rename regexfilter structures 2019-01-15 14:10:54 +02:00
Esa Korhonen
1c8c222ad1 MXS-2112 Add python script for assembling support files
The script adds config and log files into a zip archive. Passwords in
config files are censored. Also attempts to read current status by calling
maxctrl. If core-file exists, runs gdb on it to gather call stack.
The script is installed to the binary file directory.
2019-01-14 16:34:30 +02:00
Esa Korhonen
684ec3288b Rename and cleanup authenticator.h 2019-01-14 15:07:33 +02:00
Esa Korhonen
b4d91d4b9a Move query result helper class to maxsql
Added some asserts to ensure the class is used correctly.
2019-01-14 10:43:17 +02:00
Johan Wikman
07cbda7771 Merge branch '2.3' into develop 2019-01-11 13:06:16 +02:00
Johan Wikman
34359bdc83 Merge branch '2.2' into 2.3 2019-01-11 13:02:43 +02:00
Johan Wikman
9284e8e64c Merge branch '2.2.19' into 2.2 2019-01-11 13:02:05 +02:00
Johan Wikman
18c57dc6cc Update 2.2.19 release date 2019-01-11 12:58:33 +02:00
Esa Korhonen
6d296f6661 MXS-2220 Move authenticator instance data to internal class 2019-01-11 11:31:27 +02:00
Esa Korhonen
42215c65fa MXS-2220 Cleanup global server list handling
The list is now an array and only accessed by the owning object to ensure locking.
2019-01-11 11:31:27 +02:00
Esa Korhonen
87913f8cb8 MXS-2220 Miscellaneous cleanup
Removes some duplicate includes.
2019-01-11 11:00:24 +02:00
Markus Mäkelä
6eeb02d55d
Fix writeq_low_water documentation
The throttling is removed once the buffer size falls under
writeq_low_water, not writeq_high_water.
2019-01-11 10:27:11 +02:00
Markus Mäkelä
8ac786110e
MXS-2255: Fix COMMIT matching
The code used a rather questionable method for parsing SQL statements
instead of using the query classifier for detecting transaction start and
stop events.
2019-01-11 10:27:00 +02:00
Markus Mäkelä
4c61b646a4
Wait two intervals in mysqlmon_failover_rejoin_old_slave
The failover process takes at least two intervals to happen. With only a
single wait, it was down to luck whether the test would succeed.
2019-01-11 09:34:06 +02:00
Niclas Antti
9823fe2651 MXS-2247 Add support for random number generation to maxutils
Classes for xorshift and std random. Add a random number generator to Worker.
2019-01-10 16:51:32 +02:00
Johan Wikman
7cac2c009d Merge branch '2.3' into develop 2019-01-10 12:43:46 +02:00
Johan Wikman
2e1baae7f7 Update maintenance version in 2.2 minor branch 2019-01-10 12:43:31 +02:00
Markus Mäkelä
d3c7e4e23f
Update MaxCtrl packages
A library required the globby library but the version it required didn't
work. Also updated lodash and inquirer.
2019-01-10 11:23:13 +02:00