12961 Commits

Author SHA1 Message Date
Johan Wikman
d2996e1ba6 MXS-2733 Add fix that fixes the problem
UTC_TIMESTAMP() was missing from the list of builtin functions.
2019-10-28 08:34:39 +02:00
Johan Wikman
9210ef5328 MXS-2733 Add test that reveals problem 2019-10-28 08:30:04 +02:00
Markus Mäkelä
f723f22c9a
Regenerate MaxCtrl documentation
Generated the new MaxCtrl documentation with the new help output. The help
output now doesn't auto-wrap which causes lines to be longer but it
prevents broken Markdown formatting. It also makes it more readable on
wider terminals.
2019-10-18 09:51:09 +03:00
Markus Mäkelä
fd7d435f71
MXS-2712: Fix field description generation
Longer descriptions broke the formatting. The output is now also formatted
as a Markdown table which makes it work in the generated documentation.
2019-10-18 09:51:09 +03:00
Markus Mäkelä
183673b026
MXS-2720: Fix service session count
The number of sessions wasn't always incremented but it was always
decremented. This happened primarily when authentication failed. By making
the management of the counters a part of the object lifecycle, this
problem goes away.
2019-10-10 21:34:03 +03:00
Markus Mäkelä
c9da7c2727
MXS-2720: Assert that client count is non-negative 2019-10-10 21:24:36 +03:00
Markus Mäkelä
1202c00fc7
MXS-2721: Check that LocalClient creation succeeds
The creation can fail if a network socket cannot be opened and connected
to the host in question.
2019-10-10 21:24:35 +03:00
Markus Mäkelä
067b1cfbc1
Add query canonicalization profiling
A small helper program like this helps figure out performance problems
with the function.
2019-10-10 21:24:35 +03:00
Markus Mäkelä
dc4e35e60d
Add minor optimizations to get_canonical
Requiring contiguous buffers removes the need to use mxs::Buffer which
also removes the need to check for buffer boundaries.

Converted all the functions used by get_canonical into `static inline` so
that the compiler knows it can inline them. A few of them weren't `static`
which made the calls to the functions unnecessarily expensive.
2019-10-10 21:24:35 +03:00
Markus Mäkelä
6ea2adef12
Fix minor defect in get_canonical
The backslash was added instead of assigned. Since the value stored at
that position is always a null byte, assignment and addition would result
in the same outcome.
2019-10-10 21:24:35 +03:00
Markus Mäkelä
121eb93d79
MXS-2712: Add descriptions to list and show commands
The help output of all the list and show commands now explains what each
field in the output table means. The generated table will be added at the
end of the help output.

The descriptions table looks like this:

  Field         Description
  -----         -----------
  Version       MaxScale version
  Commit        MaxScale commit ID
  Started At    Time when MaxScale was started
  Activated At  Time when MaxScale left passive mode
  Uptime        Time MaxScale has been running
  Parameters    Global MaxScale parameters
2019-10-10 10:05:30 +03:00
Markus Mäkelä
e6b2fd690e
MXS-2712: Remove Blocking Polls from show threads
The value was never defined and was always empty.
2019-10-10 10:05:30 +03:00
Markus Mäkelä
088bae5a47
MXS-2712: Move field definitions out of functions
The fields are now defined separately and no longer use the object keys as
the names of the values. This makes it clearer as to what the field
definition actually is. Following commits will add a description key into
each object that makes it possible to easily build help output.
2019-10-10 10:05:29 +03:00
Markus Mäkelä
abe73c7b31
Cherry-pick: Make maxctrl rebuild when sources change
Cherry-picked 12e6ada259c38d535003c068a49bc525c33830d8 into 2.3.

Since the maxctrl build process uses add_custom_command, we must
explicitly list the sources that it depends on. With this change, maxctrl
is rebuild whenever the sources change.
2019-10-09 08:41:52 +03:00
Markus Mäkelä
56defbfdec
MXS-2639: Fix maxinfo memory leak
The JSON version didn't call json_decref on the object it created.
2019-10-09 08:41:51 +03:00
Markus Mäkelä
026109f9bc
MXS-2706: Fix maxinfo JSON output
The output now correctly formats integers.
2019-10-09 08:41:51 +03:00
Johan Wikman
65e18b0c91 Change LICENSE.TXT into a symbolic link
In 2.3 LICENSE.TXT points to LICENSE23.TXT,
in 2.4 it will point to LICENSE24.TXT, and
in 2.5, aka develep, it will point to LICENSE25.TXT.
2019-10-08 15:33:24 +03:00
Johan Wikman
ced318387c Add LICENSE23.TXT
So as to allow the change date to be update at each maintenance
release, we need to have a separate license for each minor release.
In each minor branch there will then be a LICENCE.TXT symbolic link
that points to the actual file.
2019-10-08 14:32:34 +03:00
Johan Wikman
e7e40b0179 MXS-2713 Classify SET PASSWORD as QUERY_TYPE_WRITE
A change of the password is replicated to the slaves, so it
must only be sent to the master.
2019-10-07 14:33:53 +03:00
Johan Wikman
2a7f320cf4 MXS-2713 Add test that reveals problem 2019-10-07 14:24:06 +03:00
Esa Korhonen
c54e254ea0 MXS-2645 Add test case to connection_limit test
Tests max_connections with repeated failed logins.
2019-10-04 15:11:09 +03:00
Esa Korhonen
428bc5740b MXS-2645 Decrement service client count also when authentication fails
The client count was incremented before authentication was complete, and
should be decremented if it fails. Otherwise service connection limit can
be easily reached.
2019-10-04 15:11:09 +03:00
Markus Mäkelä
869effc352
MXS-2707: Retain commands that respond
Only commands that return a response should to be retained. Otherwise the
bookkeeping of m_current_query will be wrong.
2019-10-03 22:17:44 +03:00
Esa Korhonen
fffbb9f791 MXS-2600 Update MariaDB-Monitor documentation
Clarified info on privileges.
2019-10-01 15:14:43 +03:00
Timofey Turenko
e3b7804462 Fix URL to Avro package download page 2019-09-30 14:29:00 +03:00
Johan Wikman
a9f07844b3 MXS-2699 Accept '_[character_set] hex' as string
The purpose is to recognize e.g. /_utf8mb4 0xD091D092D093/ as
a valid string. The rule actually accepts /id integer/, but in
case the statement is something else but an '_' immediately
followed by a character set, followed by a hex number, it will
be rejected by the server so no harm done.
2019-09-27 12:23:04 +03:00
Johan Wikman
c01ecfed05 MXS-2699 Add test that reveals other bug 2019-09-27 12:23:04 +03:00
Johan Wikman
5bbb2e239d MXS-2699 Add rule for (expr [, expr]*)
Sofar at most (expr, expr) was accepted.
2019-09-27 12:23:04 +03:00
Johan Wikman
0c2a84c3a5 MXS-2699 Add test that reveals problem 2019-09-27 12:23:04 +03:00
Timofey Turenko
5b4af80b15 Clean up temparary directories after creation of binary repo
During the build first binary packages are generated and copied into
'pre-repo' direcotory. Then binary repository is created and next
step is to copy repository into final directory according agreed
binary repo sirectories structure. After it temparal direcotries
are not needed.
2019-09-26 11:08:23 +03:00
Johan Wikman
54ec30cc8e MXS-2654 Document QC cache statistics 2019-09-26 09:30:52 +03:00
Markus Mäkelä
fcc7642328
MXS-2694: Add support for COM_BINLOG_DUMP
The resultset processing now understands COM_BINLOG_DUMP and treats it as
a never-ending resultset.
2019-09-24 21:41:24 +03:00
Esa Korhonen
74016322fd Update .gitignore 2019-09-23 18:36:19 +03:00
Esa Korhonen
4fbb18535b MXS-2620 Mention that a normal master server shutdown may lose events 2019-09-23 18:35:41 +03:00
Markus Mäkelä
8ac11a97c2
Extend pipe buffer size error message
The message now logs the instructions on how to increase the per-process
page limit for pipe buffers. This can happen if fs.pipe-max-size
multiplied by the number of workers exceeds the value of
fs.pipe-user-pages-soft multiplied by 4096.
2019-09-21 10:30:00 +03:00
Markus Mäkelä
6830f517b4
Improve message queue logging
Logging the pipe buffer size on startup will tell how large it was at the
time when MaxScale read it. If there are some abnormalities in it, this
will make it visible.

Logging the worker ID when the posting of a message fails will tell which
particular worker it was. For example, if the worker in question is the
main worker (i.e. ID 0), we know there's something that's blocking the
processing.
2019-09-21 09:43:12 +03:00
Johan Wikman
aa7be1447d MXS-2688 Handle SET [ROLE|NAMES|PASSWORD|CHARACTER] explicitly
It's not correct to claim that they would modify a system variable,
so they are purely classified as QUERY_TYPE_SESSION_WRITE.
2019-09-20 09:27:38 +03:00
Johan Wikman
f587ec191d MXS-2688 Add QC operator QUERY_OP_SET
Allows RWS to unconditionally send all SET-statements to
all servers.
2019-09-20 09:27:38 +03:00
Markus Mäkelä
f46f873dc1
Add verbose backend status helper
This allows the same verbose information to be logged in the cases where
it is of use. Mostly this information can be used to figure out why a
certain session was closed.
2019-09-19 13:41:49 +03:00
Markus Mäkelä
fd0c156655
MXS-2564: Reconnect only when necessary
By doing the reconnection only when a new query arrives, we prevent the
excessive reconnecting that is done when a server's actual and monitored
states are in conflict.
2019-09-19 13:41:49 +03:00
Markus Mäkelä
40d05e8278
Report more details when the master is unavailable
By dumping the connection state we'll know when the connection was opened
and closed and the reason why it was closed.
2019-09-19 12:55:31 +03:00
Markus Mäkelä
87b1dd2703
Fix stacktrace generation
The stacktraces weren't generated on systems where /bin/test didn't exist.
2019-09-19 10:56:18 +03:00
Johan Wikman
749d20b659 Update 2.3.12 release date 2019-09-19 10:48:23 +03:00
Johan Wikman
e733403996 Add 2.3.12 release notes and update change log 2019-09-19 10:48:23 +03:00
Johan Wikman
ae99e8622f Update 2.3 maintenance version 2019-09-18 15:05:41 +03:00
Markus Mäkelä
9c007ff401
Add missing workaround files to tgz installation
2.3 has new directories that must be present in the tarball.
2019-09-18 14:55:23 +03:00
Timofey Turenko
54109a5a33 Add dependecy on 'gnutls' to the installation document 2019-09-18 12:13:26 +03:00
Johan Wikman
dabab543cc MXS-2684 Add throttling callbacks to backend DCB from pool
Add throttling callbacks to a backend DCB taken from the persistent
pool. They were removed when the dcb was put into the pool.
2019-09-17 14:45:53 +03:00
Johan Wikman
60c33b149c MXS-2674 Prevent read of unitialized variable 2019-09-16 09:32:47 +03:00
Johan Wikman
01ab0c8736 MXS-2553 Allow parenthesis around SELECT
With this change, a parenthesized top-level SELECT, such as
"(SELECT f FROM t)" will be fully parsed. Before this change,
the statement was classified as invalid and would thus have
been sent to the master.

With this change also statements like

    (SELECT f FROM t1) UNION (SELECT f FROM t2)

will be correctly classified, although only partially parsed.
2019-09-13 15:45:16 +03:00