Merge branch '2.2' into develop

This commit is contained in:
Johan Wikman 2018-08-06 12:31:58 +03:00
commit 6945e82b3f
5 changed files with 89 additions and 4 deletions

View File

@ -10,6 +10,10 @@ In versions 2.1.2 and earlier, the configuration files are limited to 1024
characters per line. This limitation was increased to 16384 characters in
MaxScale 2.1.3.
In versions 2.2.12 and earlier, the section names in the configuration files
were limited to 49 characters. This limitation was increased to 1023 characters
in MaxScale 2.2.13.
## Security limitiations
### MariaDB 10.2

View File

@ -38,6 +38,7 @@ For more details, please refer to:
the master. There is also limited capability for rejoining nodes.
For more details, please refer to:
* [MariaDB MaxScale 2.2.13 Release Notes](Release-Notes/MaxScale-2.2.13-Release-Notes.md)
* [MariaDB MaxScale 2.2.12 Release Notes](Release-Notes/MaxScale-2.2.12-Release-Notes.md)
* [MariaDB MaxScale 2.2.11 Release Notes](Release-Notes/MaxScale-2.2.11-Release-Notes.md)
* [MariaDB MaxScale 2.2.10 Release Notes](Release-Notes/MaxScale-2.2.10-Release-Notes.md)

View File

@ -0,0 +1,35 @@
# MariaDB MaxScale 2.2.13 Release Notes -- 2018-08
Release 2.2.13 is a GA release.
This document describes the changes in release 2.2.13, when compared to
release 2.2.12.
For any problems you encounter, please consider submitting a bug
report on [our Jira](https://jira.mariadb.org/projects/MXS).
## Bug fixes
* [MXS-1997](https://jira.mariadb.org/browse/MXS-1997) Object names are limited to 49 characters
* [MXS-1983](https://jira.mariadb.org/browse/MXS-1983) Failed to add dcb to epoll set
* [MXS-1961](https://jira.mariadb.org/browse/MXS-1961) Standalone master loses master status
## Known Issues and Limitations
There are some limitations and known issues within this version of MaxScale.
For more information, please refer to the [Limitations](../About/Limitations.md) document.
## Packaging
RPM and Debian packages are provided for supported the Linux distributions.
Packages can be downloaded [here](https://mariadb.com/downloads/mariadb-tx/maxscale).
## Source Code
The source code of MaxScale is tagged at GitHub with a tag, which is identical
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
is `maxscale-X.Y.Z`. Further, the default branch is always the latest GA version
of MaxScale.
The source code is available [here](https://github.com/mariadb-corporation/MaxScale).

View File

@ -175,12 +175,57 @@ bool MessageQueue::post(const Message& message) const
ss_dassert(m_pWorker);
if (m_pWorker)
{
ssize_t n = write(m_write_fd, &message, sizeof(message));
rv = (n == sizeof(message));
/**
* This is a stopgap measure to solve MXS-1983 that causes Resource temporarily
* unavailable errors. The errors are caused by the pipe buffer being too small to
* hold all worker messages. By retrying a limited number of times before giving
* up, the success rate for posted messages under heavy load increases
* significantly.
*/
int fast = 0;
int slow = 0;
const int fast_size = 100;
const int slow_limit = 3;
ssize_t n;
while (true)
{
n = write(m_write_fd, &message, sizeof(message));
rv = (n == sizeof(message));
if (n == -1 && (errno == EAGAIN || errno == EWOULDBLOCK))
{
if (++fast > fast_size)
{
fast = 0;
if (++slow >= slow_limit)
{
break;
}
else
{
sched_yield()
}
}
}
else
{
break;
}
}
if (n == -1)
{
MXS_ERROR("Failed to write message: %d, %s", errno, mxs_strerror(errno));
static bool warn_pipe_buffer_size = true;
if ((errno == EAGAIN || errno == EWOULDBLOCK) && warn_pipe_buffer_size)
{
MXS_ERROR("Consider increasing pipe buffer size (sysctl fs.pipe-max-size)");
warn_pipe_buffer_size = false;
}
}
}
else

View File

@ -17,8 +17,8 @@ http://code.google.com/p/inih/
#include <stdlib.h>
#endif
#define MAX_SECTION 50
#define MAX_NAME 50
#define MAX_SECTION 1024
#define MAX_NAME 1024
/* Strip whitespace chars off end of given string, in place. Return s. */
static char* rstrip(char* s)