Commit Graph

2110 Commits

Author SHA1 Message Date
ad1c05b015 Merge branch '2.1' into develop 2017-04-05 11:35:13 +03:00
e0a98f6539 Fix calls of pcre2_substitute
If the output buffer given to pcre2_substitute is too small, an error
value is written to the last parameter (output length). That value
should not be used for calculations. This patch gives a copy as
parameter instead.

Coincidentally, this commit fixes the crashes of query classifier tests.

Also, increase buffer growth rate in utils.c.
2017-04-04 16:19:21 +03:00
dca086571b TestMaxScalePCRE2: Fix memory leaks
Not really leaks, but this reduces needless clutter in the valgrind
output.
2017-04-04 16:18:47 +03:00
8d2d6d8721 Join threads to prevent leaks 2017-04-03 14:20:54 +03:00
a362bd0024 Add parameter backend_connect_attempts to monitor
This number (defaults to 1) sets how many times mon_connect_to_db
will try to connect to a backend before returning an error. Every
connection attempt may take backend_connect_timeout seconds to
complete.

Also refactored code a bit. Renamed mon_connect_to_db to
mon_ping_or_connect_to_db, since it does not connect if the connection
is already alive.
2017-04-03 09:56:22 +03:00
cbc1e864d9 Use RFC 3986 compliant addresses in log messages
When log messages are written with both address and port information, IPv6
addresses can cause confusion if the normal address:port formatting is
used. The RFC 3986 suggests that all IPv6 addresses are expressed as a
bracket enclosed address optionally followed by the port that is separate
from the address by a colon.

In practice, the "all interfaces" address and port number 3306 can be
written in IPv4 numbers-and-dots notation as 0.0.0.0:3306 and in IPv6
notation as [::]:3306. Using the latter format in log messages keeps the
output consistent with all types of addresses.

The details of the standard can be found at the following addresses:

     https://www.ietf.org/rfc/rfc3986.txt

     https://www.rfc-editor.org/std/std66.txt
2017-03-31 14:12:58 +03:00
5c1c89c835 Remove unused buffer types
A part of the buffer types weren't used or provided no real functionality.
2017-03-31 14:12:02 +03:00
8a86efc30e Fix gwbuf_clone
With this change, the test_clone() test in testbuffer.c no longer
causes a leak according to valgrind.
2017-03-30 22:16:51 +03:00
8284716e6a Add test for gwbuf_clone to testbuffer.c
- Under valgrind, this test reveals the leak of gebuf_clone.
2017-03-30 22:14:58 +03:00
29fa4a6088 Fix testbuffer.c
Free memory allocated by tests, so that it is meaningful to run under
valgrind in order to check for GWBUF leaks.
2017-03-30 22:02:34 +03:00
b4c119915b Fix gwbuf_rtrim
- If everything in the first buffer of a buffer chain is consumed,
  then the whole chain and not just the first buffer was freed.

NOTE: gwbuf_rtrim needs to be fixed so that it removes data from the
      tail of a chain and *not* from the end of the first buffer in
      a chain. That cannot ever be what is wanted.
2017-03-30 21:49:57 +03:00
a1d1413b24 Add atomic_add for 64-bit integers.
Now only GCC intrinsics are used.
2017-03-30 12:36:23 +03:00
b458b63756 Use IPv6 for created listeners
When listeners are created, use the default values of [::]:3306.
2017-03-29 17:14:39 +03:00
1901a3bc0a Bind to IPv6 addresses by default
The `::` address covers both IPv4 and IPv6 addresses allowing both IP
versions to be used by default.
2017-03-28 21:25:30 +03:00
58c1c1a3ca Remove BLOCKING_POLL
The code was not correct anymore and correcting it does not seem
worthwhile.
2017-03-27 11:12:37 +03:00
8e24f847e6 Fix compile errors in Centos 6
Fix compile errors in Centos 6
2017-03-27 09:49:21 +02:00
710012ac5d MXS-827: Add connection keepalive
The readwritesplit now sends COM_PING queries to backend servers that have
been idle for too long. The option is configured with the
`connection_keepalive` parameter.
2017-03-26 13:57:25 +03:00
e3bae59e1a Fix C++ issues in debug mode 2017-03-24 12:54:52 +02:00
3755a5a7b0 Compile modulecmd.c as C++ 2017-03-24 11:19:01 +02:00
1e3e09f81c Compile mysql_binlog and mysql_utils as C++ 2017-03-24 11:14:07 +02:00
8d7653bdff Compile listener and ssl as C++ 2017-03-24 11:11:15 +02:00
b04e8b93c9 Compile statistics, thread, users and util as C++ 2017-03-24 11:05:55 +02:00
b5c44be4c8 Add missing MXS_[BEGIN|END]_DECLS 2017-03-24 10:59:05 +02:00
65e36a81bf Compile spinlock.c as C++ 2017-03-24 10:58:19 +02:00
bb1b7f9755 Compile server, service and session as C++ 2017-03-24 10:52:09 +02:00
ec39b54dea Compile secrets.c as C++ 2017-03-24 09:51:56 +02:00
a068c53286 Compile resultset.c as C++ 2017-03-24 09:45:42 +02:00
503c760848 Compile random_jkiss.c as C++ 2017-03-24 09:42:38 +02:00
a9c2580da4 Compile poll.c as C++ 2017-03-24 09:35:11 +02:00
d19ae82a63 Fix rebase 2017-03-24 09:29:53 +02:00
83fd79e280 Compile queuemanager.c as C++ 2017-03-24 09:21:20 +02:00
6acd58e86c Compile monitor.c as C++ 2017-03-24 09:21:20 +02:00
640f0d5139 Compile modutil.c as C++ 2017-03-24 09:21:20 +02:00
44fe995574 Compile mlist.c as C++ 2017-03-24 09:21:20 +02:00
419c55e5be Compile misc.c as C++ 2017-03-24 09:21:20 +02:00
604526667c Compile maxscale_pcre2.c as C++ 2017-03-24 09:21:20 +02:00
96df523ce4 Compile load_utils.c as C++ 2017-03-24 09:21:20 +02:00
a095c80d24 Compile housekeeper.c as C++ 2017-03-24 09:21:20 +02:00
ebf22eee8f Compile hint.c as C++ 2017-03-24 09:21:20 +02:00
d257a8a905 Compile hashtable.c as C++ 2017-03-24 09:21:20 +02:00
90f56e9dde Compile path.c as C++ 2017-03-24 09:21:20 +02:00
77bc2dd7bb Compile externcmd.c as C++ 2017-03-24 09:21:20 +02:00
9a22d1cb92 Compile filter.c as C++
The contents of the existing filter.cc was copied into filter.c that
subsequently was renamed to filter.cc.

The way the session is called as the last filter in the filter chain
is really dubious and ought to be rearranged so that the blind casting
of a session to a filter and back is not needed.
2017-03-24 09:21:20 +02:00
db18e19d3c Compile dcb.c as C++ 2017-03-24 09:21:20 +02:00
71ae3cf524 Compile config_runtime.c as C++ 2017-03-24 09:21:20 +02:00
74085978b4 Compile config.c as C++ 2017-03-24 09:21:20 +02:00
c84c2dcfbd Compile authenticator.c and buffer.c as C++ 2017-03-24 09:21:20 +02:00
462b572600 Compile atomic.c as C++ 2017-03-24 09:21:20 +02:00
acc61ed13d Compile alloc.c as C++ 2017-03-24 09:21:20 +02:00
f82232eac6 Compile adminusers.c as C++ 2017-03-24 09:21:20 +02:00