Markus Mäkelä 968d43799f
MXS-3273: Ignore unexpected responses
Unlike readwritesplit, schemarouter will process all responses from
backends as if they are expected. There are cases where errors are
generated that aren't sent as a response to a query. These queries must be
ignored and not routed to the client. Copying the code as-is from
readwritesplit isn't the cleanest solution but it avoids refactoring code
in a patch release.

The custom error number (2003) used by the backend protocol code was not
an actual error number that the server would send. The error code in
question was for an error that only the C connector returns:
CR_CONN_HOST_ERROR. Using ER_CONNECTION_KILLED as the error number better
conveys the fact that the connection was killed due to a reason not
related to any ongoing query.

By using a known error number that is correctly handled, we also avoid
writing errors to the client in the middle of a resultset or as the
initial response to a result. This explains why the problem described in
MXS-3267 happened in the first place: an unrelated connection was lost in
the middle of a resultset and the error was interpreted as the end of a
resultset. As a result of there being more data to be read, the unexpected
result state messages were logged.
2020-11-04 16:44:46 +02:00
2020-10-14 09:15:46 +03:00
2020-10-08 15:25:49 +03:00
2020-10-14 09:15:46 +03:00
2020-09-08 11:33:52 +03:00
2020-04-23 14:51:11 +03:00
2020-10-14 09:15:46 +03:00
2020-10-14 09:15:46 +03:00
2020-10-14 09:15:46 +03:00
2020-10-14 09:15:46 +03:00
2020-10-29 15:25:21 +02:00
2019-12-04 13:27:24 +02:00
2017-05-29 21:50:29 +03:00
2020-07-28 16:15:50 +03:00
2019-10-29 12:51:31 +02:00
2020-06-05 09:31:45 +03:00
2020-10-14 09:15:46 +03:00
2018-07-07 09:27:34 +03:00
2019-05-10 09:21:52 +03:00
2020-10-14 09:19:34 +03:00

MaxScale by MariaDB Corporation

Build Status

The MariaDB Corporation MaxScale is an intelligent proxy that allows forwarding of database statements to one or more database servers using complex rules, a semantic understanding of the database statements and the roles of the various servers within the backend cluster of databases.

MaxScale is designed to provide load balancing and high availability functionality transparently to the applications. In addition it provides a highly scalable and flexible architecture, with plugin components to support different protocols and routing decisions.

For a detailed overview of what MaxScale can do, read the MaxScale page on the MariaDB website.

An Google Group exists for MaxScale that can be used to discuss ideas, issues and communicate with the MaxScale community.

We're also on the #maria and #maxscale channels on FreeNode.

Please report all feature requests, improvements and bugs in the MariaDB Jira.

Getting Started

Read the Documentation Overview for a list of all MaxScale documents.

Documentation

The official documentation can be found on the MariaDB Knowledge Base.

A MaxScale Troubleshooting Guide can be found on the MariaDB Knowledgebase. It answers common questions encountered when installing and using MaxScale.

The documentation can also be found in the Documentation directory of the source tree.

Contributing Code

Read the Contributing page on the wiki for more information on how to do pull request and where to do them.

Description
No description provided
Readme 118 MiB
Languages
C 50.9%
C++ 30.8%
Shell 3.7%
HTML 3.2%
Tcl 3.1%
Other 8.1%