Commit Graph

4628 Commits

Author SHA1 Message Date
379cb6c781 MXS-564: Slave server states were not properly cleared after session commands
When a command that changes the session state is executed on all servers and
a slave server goes down, an error message was sent to the client even though
one wasn't expected. These appeared as odd connection errors on the client side.
2016-02-05 13:54:24 +02:00
9432967da5 Don't assert the master server state when routing query to slave
When a query is being routed to the slave, it is not necessary to assert that
the master server's state is still master. It is possible that the master server
changes states while the query is being routed but that doesn't affect the query
being currently routed.
2016-02-04 09:57:27 +02:00
e731f6a29e Fixed double freeing of buffers
The buffers in readwritesplit are handled at the routeQuery level and freeing
them at lower levels cause a double free of the used buffers.
2016-02-04 09:57:27 +02:00
d9eeb72198 Added missing check for closed master backend reference into readwritesplit
The master DCB was checked for NULL-ness but the proper way is to check if
the backend reference is closed. This will fix a debug assertion in addition
to possibly preventing crashes.
2016-02-04 09:57:27 +02:00
e7fb2640d3 Fixed authentication failing due to unknown database even though it exists
When the shard maps are being updated they are set into a stale state. This
means that one client connection is updating the shard maps and the information
in the shard map is not the most recent. This does mean that the information
is valid and authentication should succeed even if the shard map is stale.
2016-02-03 00:47:06 +02:00
ba2dbffdbe Update authentication limitations. 2016-02-01 10:52:52 +02:00
889a90fb42 Update 1.3.0 release note. 2016-02-01 10:24:35 +02:00
e3ebf19ca0 Moved HA tutorials to the Tutorials folder
The Corosync/Pacemaker and Lsyncd tutorials were in the reference folder even
though they are tutorials.
2016-01-29 10:59:25 +02:00
74281401d8 Added missing option for getopt
The --language short option -N did not work and the errmsg.sys file
was always searched for in the wrong place.
2016-01-28 18:52:46 +02:00
379004a2a4 Removed corrupted error messages from readwritesplit
When a slave server fails to execute a session command, the log message printed
the command that was being executed as if the ERR packet was a COM_QUERY packet.
This caused corrupt strings to be printed into the error logs.
2016-01-28 13:04:23 +02:00
e6d18f0b66 Fixed debug assertion causing a crash in readwritesplit
A debug assertion in the readwritesplit would always fail when the master DCB
was NULL. This was caused by the fact that the debug assertion assumes that the
pointer that is passed to it is a valid pointer.
2016-01-28 10:46:55 +02:00
087ab202c2 MXS-559: Fixed unsafe use of the master DCB in readwritesplit
The master DCB was used without checking if it was still open. It was possible
that the master DCB was closed and processed before the client had fully
processed all queries which caused it to fail at a debug assertion.

The fix to this is to use the client's DCB to get access to the shared session
authentication data as it is protected by additional locks.
2016-01-26 14:48:01 +02:00
99f39cb213 MXS-548: Added missing locks to shared session data
The shared session data was accessed and modified without a lock.
2016-01-21 10:25:41 +02:00
8ba14ee4ee Fixed init script issue on Ubuntu
The init script split the command and the arguments with double quotes causing
the service to run as root instead of the maxscale user.
2016-01-19 19:29:25 +02:00
e67ebffaff Updated help messages and manpage
The manpage was out of date and was missing a BUGS section. The `--help` output
of MaxScale wrongly stated that the default is to log to shared memory as did
the documentation.
2016-01-19 18:36:01 +02:00
b470ebe732 Disabled connection_timeout because it's unsafe to use
The current implementation of the session timeout functionality is not safe to
use. Added a warning to the documentation and disabled the code. If the user
tries to use it, a warning is logged.
2016-01-19 15:29:01 +02:00
c1a906a60d Remove beta status.
Remove all references to beta. This is now 1.3.0.
2016-01-19 13:59:10 +02:00
3030d6f398 Moved description of weightby to the correct section.
The description was in router options instead of optional parameters.
2016-01-11 17:34:36 +02:00
36bd218afd Cleaned up documentation
Fixed spelling mistakes, cleaned up formatting and added missing links.
2016-01-08 11:02:12 +02:00
5b91f98067 Removed the 16 chars limitation for binlog file name
Removed the 16 chars limitation for binlog file name
2016-01-07 14:36:52 +01:00
e0e0d3a5e5 Add location of source and packages to readme. 2016-01-05 16:09:10 +02:00
bd95ea2d35 MXS-451: Made documentation clearer about slave_selection_criteria
The documentation for readwritesplit now clearly states that only connections
from MaxScale are taken into consideration when slaves are being selected.
2016-01-04 18:40:01 +02:00
145abf5a53 MXS-452: Updated readwritesplit documentation
The documentation now mentions that weightby works with readwritesplit and
links to the configuration guide for more information.
2016-01-04 18:40:01 +02:00
4ef89d213b MXS-463: Filepaths are now properly formatted for printing
The various global directory setter functions now process the input they receive
and remove redundant and trailing forward slashes from the directory paths.
2016-01-04 18:40:00 +02:00
05a7f5759b Fixed thread safety issues in schemarouter and shardrouter
Fixed strtok being used in a multithreaded context and removed unused code.
2016-01-04 18:40:00 +02:00
3abcb52837 MXS-502: Server state changes are logged at notify level
When MaxScale perceives a state change in one of the servers it will log
an message into the log file stating the previous and the current state.
This will make it easier to analyze failures in the cluster.
2015-12-30 19:49:41 +02:00
901dfd23c0 Changed burst_size to long instead of unsigned long
Changed burst_size to long instead of unsigned long.
This way check burst_size > 0 is now effective.

Setting "burstsize" option in router_options may be required.
i.e.: burstsize=10M
2015-12-30 16:14:51 +01:00
309f794992 Added images to RabbitMQ and Tee tutorial
Added an image which depicts the use-case for the tutorial.
2015-12-30 16:53:57 +02:00
94edc847c2 Updated readconnroute limitations
The limitation with readconnroute and LONGBLOB is only when data is being sent
from the client to MaxScale. The client can still query for LONGBLOB data
without any side-effects.
2015-12-30 14:50:03 +02:00
cec2c3670d Added a link to the persistent connection tutorial to the configuration guide
Also bolded out the note about session state tracking.
2015-12-30 11:35:30 +02:00
e40944c9b9 Added note about persistent connections
Since the persistent connections do not track session state, a note should
be added somewhere which states this.
2015-12-30 11:31:36 +02:00
3c69e641b9 Fixed false backend authentication failures
It was possible that a backend server was doing authentication while the client
closed the session. The more connections the router created the more likely it
was. This caused unnecessary reloading of the database users and confusing error
messages.

With the implemented fix, there are additional checks for the session state
before the users are reloaded or error messages are logged.
2015-12-30 05:13:27 +02:00
080a9ebc9d PCRE2 is now statically linked
Since the PCRE2 library was always going to be a part of MaxScale, there was
no real reason to have it as a shared library apart from smaller binaries.
2015-12-29 10:09:38 +02:00
e305a88e0e Enabled CPACK_DEBIAN_PACKAGE_SHLIBDEPS again
The removal of this from the DEB packages caused no dependencies to be generated.
2015-12-29 10:09:38 +02:00
0cf564aa0d Fix to MXS-508: Fixed username matching in regexfilter
The username matching was working as intended but the session's active value
was ignored when queries were being routed. This meant that both the username
and the IP address of the user were ignored and query replacement was always
done.
2015-12-29 09:57:27 +02:00
04f807290a Remove file from slave
The binlog file is now always opened when it is needed and closed
when we are finished with it. That will remove any potential
file concurrency issues between different threads dealing with
the same slave.
2015-12-29 09:42:09 +02:00
71212a824b Removed extra brace
Removed extra brace
2015-12-28 17:56:39 +01:00
0f51f9c714 Changed behaviour for a slave requesting master_log_pos beyond binlog file size
Slave request for a log_pos behind binlog file size may result in a
disconnection or replication error:

if binlog file is latest one slave get disconnected otherwise an error
message is returned and replication stops
2015-12-28 17:56:33 +01:00
2b6b8f87db Fix to MXS-183: Fixed wrong pointer being used for logging error message
The wrong pointer was used when logging an error message about a bad parameter.
2015-12-23 12:46:08 +02:00
4b7cec504a Changed maxscale.service restart values
The maxscale service will be restarted only if the process is down because
a signal was caught or the process times out. If the process would be restarted
when it exits with a non-zero value, this would lead to infinite loops when
there is a configuration error.
2015-12-17 10:23:47 +02:00
8d969aadd1 Changed default number of threads and added auto value.
Changed default number of threads to 1 instead of autoconfigured value and
added a new `auto` variable which enables autoconfiguration of thread count.

The number of threads used when autoconfiguratio fails was changed from 4 to 1.

The default value of using N threads where N is the number of CPU cores was
not optimal as the possibility of rescheduling was higher the more utility
threads there were. Due to this, N-1 is deemed to be the better autoconfigured
value for thread count.
2015-12-15 15:08:43 +02:00
78b5777d6e Fixes to Coverity defects
Few fixes to possible use of freed memory and resource leaks.
2015-12-15 13:13:53 +02:00
3d20beef8c Fixed possible memory leaks in dbfwfilter.c
Made some variables stack allocated so there is no change of memory leaking.
There was no real reason to allocate memory from the heap for the variables in
question since they did not need to persist outside the scope of the function.
2015-12-15 13:09:50 +02:00
0ea22ddaea Change links to Release Notes and Upgrade document. 2015-12-15 10:31:16 +02:00
ea0c4bd616 Fixed systemctl commands being called even if it wasn't available
On systems where the systemd directories exist but not the systemctl command,
installation of MaxScale would cause systemctl to be called. This would print
an error when the package is being installed.
2015-12-14 13:51:29 +02:00
24abdb36b4 Update MAXSCALE_VERSION 2015-12-11 11:27:18 +02:00
0450c89ba3 Merge branch 'doc_fixes' into release-1.3.0
Update documentation.
2015-12-11 11:09:53 +02:00
6953617183 Added a note about launchable script changes to the release notes. 2015-12-11 10:06:52 +02:00
dc64b12077 Fixed PCRE2 libraries missing symbolic link to library
The libpcre2-8.so was not a symbolic link but an actual library.
2015-12-11 06:43:16 +02:00
5266f1f125 Updated postrm script
Pre-1.2.0 configuration scripts are no longer copied and renamed.
Init scripts, ldconfig files and systemd service files are only removed if
they are found.
2015-12-11 06:22:07 +02:00