Commit Graph

10803 Commits

Author SHA1 Message Date
17c9ac95bd MXS-1845 Add unit test for the cycle find algorithm (Tarjan SCC)
Only a few test cases for now.
2018-06-05 16:33:51 +03:00
9a0445cd4e MXS-1845 Save cycle members
The saved data may be useful later on. Also includes some cleanup.
2018-06-05 16:25:04 +03:00
19a0c94661 Typo fix in logthrottling_test 2018-06-05 15:49:22 +03:00
1857252033 MXS-1749 Delete old process datadir on startup if it still exists
When starting MaxScale it deletes all of the old process datadirs that
might have not been cleaned up due to unexpected exit of the program.
2018-06-05 15:10:41 +03:00
ac998b70a3 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2018-06-05 11:37:18 +03:00
48509d30f1 Silence the -Wunused-result warning
-Wunused-result warning in test_logthrottling.cc was causing error when
trying to build MaxScale from source. This warning can be silenced with by
putting the function triggering the warning in if-clause.
2018-06-05 11:30:55 +03:00
7e1f795ae9 Address review comments 2018-06-05 10:37:03 +03:00
a5377212a6 MXS-1507: Add transaction replay stress test
The test performs transactions while the master server is stopped and
started.
2018-06-04 19:26:36 +03:00
445eece95b MXS-1507: Fix replaying of empty transactions
If the starting of a transaction was interrupted by a server failure, the
query needs to be retried. This needs to be done as a transaction replay
to keep the routing logic consistent and simple.

When a non-autocommit transaction is interrupted, there will be no query
in progress and no replaying is needed. To handle this case, the replay
initialization logic needed to be altered to treat truly empty
transactions as a success case.
2018-06-04 19:26:36 +03:00
74cc74ed66 Remove MySQL 5.1 support from tests
Removed the configuration parameter template and the code that uses it.
2018-06-04 19:26:36 +03:00
e858ef672c Fix moudle command debug assertion
The names can be of different case.
2018-06-04 19:26:36 +03:00
dfd898e2cc Update 2.2 change log and add 2.2.9 release notes 2018-06-04 16:02:42 +03:00
4a3216d483 Merge branch '2.2' into develop 2018-06-04 16:00:19 +03:00
9d0b1be08b Improve unexpected response error message
The message now logs the current command and the query if it is available.
2018-06-04 15:17:48 +03:00
306beb05cd MXS-1899: Allow generated [maxscale] sections
The generated configuration file contains a [maxscale] section which
should not be treated as an error.
2018-06-04 15:17:48 +03:00
d22f6d7b1c MXS-1743: Fix load balancing with router_options=master,slave
The code that selects the candidate backend always returned the root
master if the server bitmask contained the master bit. This should only be
done if the master bit is the only bit in the bitmask and when there are
other bits, the normal candidate selection code should be used.

Also added a query to the expanded test case to make sure the connection
actually works.
2018-06-04 15:17:48 +03:00
da4397a501 MXS-1743: Expand test case to cover load balancing
The test case now verifies that the servers are actually load balanced
correctly. This test reveals a problem in the readconnroute; the master is
always preferred over slaves if one is available with
router_options=master,slave.
2018-06-04 15:17:48 +03:00
cddcc6d7d5 MXS-1896: Distinct LOAD DATA LOCAL INFILE from LOAD DATA INFILE
The two operations return different types of results and need to be
treated differently in order for them to be handled correctly in 2.2.

This fixes the unexpected internal state errors that happened in all 2.2
versions due to a wrong assumption made by readwritesplit. This fix is not
necessary for newer versions as the LOAD DATA LOCAL INFILE processing is
done with a simpler, and more robust, method.
2018-06-04 15:17:48 +03:00
c88aa11e11 Copy FDE events in avrorouter
Commit 67386980e327ad063b24cb55971cf44f4930e241 caused the actual events
to be ignored. This meant that the larger event size was assumed for all
events. In most cases this works but it is not the correct way to do it.
2018-06-04 15:17:48 +03:00
a16d8c2ca0 Merge branch '2.2' into develop 2018-06-04 13:32:41 +03:00
735191072d Merge branch '2.2.8' into 2.2 2018-06-04 13:32:19 +03:00
03f4067bcb Update release date of 2.2.8
It will not officially be released, but we must import the
documentation nonetheless as otherwise it's not possible to
refer to the 2.2.8 release notes and that's needed because the
bugs fixed in 2.2.8 are still fixed in 2.2.8 and not 2.2.9.
2018-06-04 13:30:46 +03:00
a0ffde9271 Update version number 2018-06-04 13:26:05 +03:00
3d7bcd4ad3 Merge branch '2.2' into develop 2018-06-04 13:24:54 +03:00
bc1aff343f Add document on branching and tagging
Easier to ensure it stays up to date if it is kept among the
source rather than in the GitHub wiki-page or the intranet.
2018-06-04 13:24:40 +03:00
0ded185bee Remove release date
MaxScale 2.2.8 will not officially be released.
2018-06-04 13:23:33 +03:00
7cd19a12a2 MXS-1883 Remove locking during monitor loop
Since the admin cannot modify server states any more, the locks are not
required.
2018-06-01 15:03:07 +03:00
37841183b3 Cleanup server.h
Renamed, rearranged and clarified status bits. Removed unused macros.
2018-06-01 14:29:51 +03:00
4d7aff4ab9 MXS-1845 Find strongly connected components with multiple slave connections
Rewrote the algorithm for clarity.
2018-06-01 14:04:50 +03:00
f0588c00da Update change log and add release notes 2018-06-01 13:57:55 +03:00
32c7ae2f9f MXS-1775 Inherit MariaDBMonitor from mxs::MonitorInstance
Start/stop now provided by MonitorInstance. The thread main
function is now virtual and overriden by MariaDBMonitor. Some
additional refactoring is necessary in order to be able to allow
MonitorInstance to handle the main loop.
2018-06-01 13:48:15 +03:00
5219245a04 MXS-1775 Reset server info in MariaDBMonitor::configure()
That way, MariaDBMonitor no longer needs a custome start() function.
2018-06-01 13:48:15 +03:00
be3bdc7bc9 MXS-1775 Rename MariaDBMonitor::main_loop() to main()
To make it compatible with mxs::MonitorInstance.
2018-06-01 13:48:15 +03:00
a82c5911e5 MXS-1775 Rename m_monitor_base to m_monitor
To make it compatible with how the variable is named
in maxscale::MonitorInstance.
2018-06-01 13:48:15 +03:00
f862939dd7 MXS-1775 Make MariaDBMon non-dependent on stop() return value
To align it with the behavour or MonitorInstance::stop()
2018-06-01 13:48:15 +03:00
e8deb553be MXS-1775 Make MonitorInstance more resilient towards abuse
If MonitorInstance is in the wrong state when it is started/stopped
a warning is logged and the operation ignored.
2018-06-01 13:48:15 +03:00
62f3e89ae7 MXS-1775 Tilt MariaDbMon towards maxscale::MonitorInstance
- m_status -> m_state
- m_keep_running -> m_shutdown
- load_config_params() -> configure()
2018-06-01 13:48:15 +03:00
a55019774d MXS-1775 Expose the state of the monitor 2018-06-01 13:48:15 +03:00
ebcb807438 MXS-1775 Add default implementations 2018-06-01 13:48:15 +03:00
9b7e37e112 MXS-1775 Change MonitorInstance::configure() prototype
Now return boolean, to allow derived class to signal a failure
to configure.
2018-06-01 13:48:15 +03:00
0783af88ed MXS-1775 Make general cleanup
Document and rearrrange so that things look nice and tidy.
2018-06-01 13:48:15 +03:00
76cfe7291d MXS-1775 Move module entry point to the end of the file
Now the same way in all monitors.
2018-06-01 13:48:15 +03:00
b439857a84 MXS-1775 Remove destroy()
Now the instance is deleted simply by deleting it.
2018-06-01 13:48:15 +03:00
0833db8a48 MXS-1775 Flush pending status to servers using common code 2018-06-01 13:48:15 +03:00
15b1c270a3 MXS-1775 Check connection in MonitorInstance::tick()
Since the connection checking is done in an identical fashion in
all monitors, it can be moved to the base-class.
2018-06-01 13:48:15 +03:00
a8205824f8 MXS-1775 Update statuses the usual way in MMMon
As all other monitors MMMon now only manipulates the pending_status
of the monitor object during analysis and only in the end touches
the server status.
2018-06-01 13:48:15 +03:00
4a5ed6ce7f MXS-1775 Fix GaleraMonitor to update pending_status 2018-06-01 13:48:15 +03:00
c0ace6a694 MXS-1775 Rename server_clear_set_status
Renamed to server_clear_set_status_nolock, like all other non-locking
functions are called. Rename arguments to be self-explanatory.
2018-06-01 13:48:15 +03:00
f50ebfce2a MXS-1775 Set/clear initial bits similarly in all monitors 2018-06-01 13:48:15 +03:00
8fed6752bd MXS-1775 Fix NDPCMonitor to update pending_status
Instead of continuously updating the status of the server object,
the monitor should update the pending_status of the monitor object
and then only at the end update the status of the server object.
2018-06-01 13:48:15 +03:00