Commit Graph

4198 Commits

Author SHA1 Message Date
85a0cdf46c Fix runtime listener creation
The "default" special keywords weren't removed.
2019-05-22 10:02:48 +03:00
b04415d8da Fix use of gwbuf_length in mxs::Buffer
Backend should use empty() instead of length() to see if the buffer is
empty. The length of a buffer should always be valid to call, even on
empty buffers.
2019-05-21 13:15:20 +03:00
c4fff21909 Fix gwbuf_apped assertion on writeq drain
The DCB writeq would be the tail pointer and it would be NULL.
2019-05-21 13:15:20 +03:00
cf46004bd8 Make the servers-array in Monitor private
This prevents derived classes from modifying the array directly,
which would be unsafe.
2019-05-21 10:58:24 +03:00
68ad51bc52 MXS-2483: Address review comments 2019-05-20 15:46:53 +03:00
08bb5d009d MXS-2483: Make some SSLContext methods const
The serialization and opening of a new SSL session can be const.
2019-05-20 15:46:53 +03:00
c78e907da0 MXS-2483: Minor SSL usage cleanup
Changed getter function return values to std::string, converted
MXS_CONFIG_PARAMETER::set_from_list to take std::strings instead of const
char pointers.
2019-05-20 15:45:19 +03:00
82add11e86 MXS-2483: Take SSLContext into use
SSLContext is now used everywhere except the binlogrouter which still
allocates the contexts itself. Fixing the binlogrouter's misuse of
internal structures is a rather large undertaking and for this reason the
SSLContext will be taken into use there in a separate commit.
2019-05-20 15:45:18 +03:00
73796be9d6 MXS-2483: Make SSLContext a C++ class
The class now encapsulates all the functionality that is related to
setting up a SSL context.
2019-05-20 15:45:18 +03:00
c21558315b Fix debug assertion with SSL connections
The code assumed gwbuf_length would accept null buffers.
2019-05-20 15:45:18 +03:00
1197bd40db MXS-2483: Move unwanted SSL code to mysql_client.cc
The code was only used by mysql_client.cc and should therefore be located
in it.
2019-05-20 15:45:18 +03:00
cab336ed89 MXS-2483: Rename SSL_LISTENER to mxs::SSLContext 2019-05-20 15:45:18 +03:00
0f714e9ad4 MXS-2495 Cleanup GWBUF interface
All GWBUF macros that address a single link in a chain are now
simple wrappers for equivalent gwbuf_link-functions.

Next step is to drop the macros and replace their use with calls
to the functions.
2019-05-20 09:57:37 +03:00
a6c5e880c1 MXS-2470 Validate GWBUFs
A GWBUF given to any gwbuf-function:

- Must not be NULL. Exceptions are gwbuf_free() and gwbuf_append(),
  in analogy with free() and realloc() respectively.
- Must be the head of a chain.
- Must be owned by the calling thread.
2019-05-17 14:37:38 +03:00
6cd86051de MXS-2470 Invalidate tail pointers
Although not made unambiguously clear, it is *ONLY* allowed to
manipulate GWBUFs that are the first link of a GWBUF chain (that
may consist of just one link).

With this change, in debug mode the tail pointer of intermediate
links is invalidated so that an attempt to use an intermediate
link is likely to cause a crash.
2019-05-17 14:37:38 +03:00
c801789ff3 Cleanup monitor running state 2019-05-17 13:34:48 +03:00
08b4c26652 Monitor types and fields cleanup
Moves some enums to class enums. Moves some free functions to class methods.
2019-05-17 13:34:48 +03:00
f86f2c7688 Move remaining monitor status print functions inside class 2019-05-17 13:31:20 +03:00
0a6c94d77b Merge branch '2.3' into develop 2019-05-16 10:55:19 +03:00
b80aa081fe Fix test_buffer test case 2019-05-15 12:17:10 +03:00
cefed56c48 Update unit tests due to mysqlauth -> mariadbauth change 2019-05-14 14:37:11 +03:00
884b5ea706 Change monitor ticks to atomic_long
The original atomic_int64_t was not supported on older compilers.
2019-05-14 14:02:02 +03:00
32c2724454 Merge branch '2.3' into develop 2019-05-14 13:36:54 +03:00
01c4beec10 MXS-2470 Update tail pointer in gwbuf_clone 2019-05-14 13:36:33 +03:00
600e23ae2d MXS-2470 Add unit test that reveals problem 2019-05-14 13:36:33 +03:00
50fef6f361 MXS-1957 Add MariaDBAuth alias 2019-05-13 15:35:09 +03:00
9810c5fa69 MXS-1957 Add MariaDBBackendAuth alias 2019-05-13 15:35:09 +03:00
a9b1e3a442 Move some Monitor fields to private and protected
None of the fields should be publicly writable and some should not even
be writable from derived classes.
2019-05-10 14:48:41 +03:00
5077ad62df Move monitor runtime modification functions to MonitorManager
Requires moving some general configuration checking functions to
config.cc.
2019-05-10 14:48:41 +03:00
a3bb61486d Move server_set_status and server_clear_status to monitor
The operation goes through monitor code so should be in the according file.
2019-05-10 14:37:35 +03:00
45f508a376 Fix listener creation
The correct parameters weren't set in Listener::create and there was no
check for two listeners listening on the same socket.
2019-05-10 13:20:32 +03:00
0d13e694e4 Merge branch '2.3' into develop 2019-05-10 09:28:39 +03:00
b4e8f79c5f Format core sources again
Formatted with nl_func_type_name and related options set to ignore. This
keeps the formatting intact for long return types in declarations and
definitions.
2019-05-10 09:21:52 +03:00
50b5fe76ef Pass parameters as const ref to server_alloc 2019-05-10 09:21:52 +03:00
d203e7af83 Move SSL related code into ssl.cc
The code was in the listener sources but was shared by both listeners and
servers.
2019-05-10 09:21:52 +03:00
3813c728b1 Move listener parameter handling into Listener::create
The Listener::create method now takes a set of configuration parameters
from which it constructs a listener. This removes the duplicated code and
makes the behavior of listener creation similar to other objects in
MaxScale. It also allows the configuration parameters to be stored in the
listener object itself.
2019-05-10 09:21:52 +03:00
37bfe1cd67 Never exceed persistent connection limits
By doing the persistent connection count incrementation with CAS, value
can be guaranteed to never exceed the configured limit.
2019-05-10 09:11:39 +03:00
c72dbb6f46 MXS-2448: Fix connection counts of persistent DCBs
DCBs that were closed while they were persisted were double decremented.
2019-05-09 13:53:32 +03:00
d2e49c9591 MXS-2448: Assert that connection counts never go negative
The connections should never go below zero. It seems that at least pers_01
test suffers from this.
2019-05-09 13:06:27 +03:00
b313c6d0e7 MXS-2474 Ignore attempts to re-register a housekeeper task
It is an error to register the same task multiple times, but
for a maintenance release it is simpler and less risky to simply
ignore an attempt (that BLR does) to do that.

Allowing a task to be registered anew causes behaviour akin
to a leak.
2019-05-09 10:58:35 +03:00
e3b5ba9620 MXS-1973 Support reverse DNS for client hostnames in MaxCtrl
May slow maxscale down when used. Only supported for "list sessions",
"show sessions" and "show session <id>".
2019-05-08 15:04:44 +03:00
446788f2ed MXS-1799 Add timestamps to retain_last_statements messages 2019-05-07 22:54:31 +03:00
3d66e68e95 MXS-2170 Start MaxScale normally if it gets the same PID as previous
MaxScale

Check is made to see if the found MaxScale PID is owned by the process
itself.
2019-05-07 22:23:46 +03:00
4e6ffc0381 Clean up server config parameter handling
Removes helper classes which are no longer required.
2019-05-07 15:39:34 +03:00
95fd61b8dc Fix listener search functions
The functions that searched for listeners compared both sockets and
addresses in the same function. This made its use error prone and caused
false positives in some cases.
2019-05-06 19:55:31 +03:00
6b8ca35408 Format core source files
Formatted core .cc files according to current uncrustify configuration.
2019-05-06 16:05:50 +03:00
5ac24de6b0 Remove log_to_shm
The feature was removed in 2.3 and was ignored if configured.
2019-05-06 16:05:50 +03:00
20a7170024 Fix unit tests that use durations
The tests that used objects that expected a default value for a duration
failed due to missing parameters.
2019-05-06 15:38:43 +03:00
fb0745e3de Merge branch '2.3' into develop 2019-05-03 13:48:57 +03:00
a3cf1d22c0 MXS-2457 Streamline logging 2019-05-03 13:38:12 +03:00