Commit Graph

266 Commits

Author SHA1 Message Date
dae99b2acd Merge branch '2.3' into develop 2019-01-15 15:57:06 +02:00
1c8c222ad1 MXS-2112 Add python script for assembling support files
The script adds config and log files into a zip archive. Passwords in
config files are censored. Also attempts to read current status by calling
maxctrl. If core-file exists, runs gdb on it to gather call stack.
The script is installed to the binary file directory.
2019-01-14 16:34:30 +02:00
8d77ddec63 MXS-2208 Add simple Http library
- Built on top of Curl
- Currently only GET
2018-12-05 12:48:42 +02:00
0c7e737eb7 Move some mysql/mariadb utilities to maxutils
Can be used in system tests later on.
2018-11-30 13:03:37 +02:00
8b9fdaa0cb Remove HTTP functionality
It wasn't used so it can be removed.
2018-10-03 08:41:45 +03:00
fd176c4122 Merge branch '2.2' into develop 2018-09-11 12:57:19 +03:00
31f6d49ddb Add symbolic VERSION file
The VERSION.cmake file defines which VERSION.cmake file is included. By
changing the file that it points to, the version can be changed without it
affecting other parts of the code that use it.
2018-09-10 15:11:18 +03:00
f8fb9510c9 Add HTTP GET function
The function performs a HTTP GET on a URL and returns the HTTP response.
2018-08-23 15:46:45 +03:00
930be8d77a Fix CMake problems in system test
The paths were wrong in the scripts used to run tests. The same problem
was in the CMake files that used CMAKE_SOURCE_DIR instead of
CMAKE_CURRENT_SOURCE_DIR.

Added missing check for BUILD_SYSTEM_TESTS in avrorouter for the
workaround to building without all dependencies present.
2018-08-20 13:56:58 +03:00
d428292ec0 Add workaround to building tests without all dependencies
The system tests can be build even if not all of the dependencies for
MaxScale are met.
2018-08-20 13:56:58 +03:00
67df3ad4f0 Use option() CMake command
This is the appropriate command for ON/OFF options controlled by the
user. Also removed the useless C99 option which must always be on (using
C11 would be another option).
2018-08-20 13:56:58 +03:00
f09afa2967 Combine regression test suite and main CMake projects
Combining the projects makes it easier to use common components. This
fixes the build failure of maxutils due to missing jansson definitions.
2018-08-17 14:29:28 +03:00
7e857e36eb Enable use of TSAN
The -DWITH_TSAN option enables the ThreadSanitizer if libtsan is
installed.
2018-07-31 09:41:14 +03:00
7254a7c525 Make maxutils a standalone library
The only way to cleanly separate the maxutils library from the MaxScale
CMake project is to make it a standalone CMake project. With the help of
ExternalProject, it should be relatively easy to use.
2018-06-22 13:59:57 +03:00
d2e1cfdf4e MXS-1777 fix CMakeLists.txt for utility library
Last minute directory changes were not fully applied in CMakeLists.txt
2018-06-18 15:27:44 +03:00
2514c99d9e MXS-1777 Create new utility library
The purpose of this library is to create a utility library that is not
dependent on maxscale for use in both maxscale and system test, and
possibly other apps. As time permits general purpose utilities from
maxscale-common can be moved to the new library.

Here are answers to questions you may have:
- A top level directory "maxutils" contains the libraries. The current
  structure is simply maxutils/maxbase. Each library has an 'include' and
  a 'scr' directory where public headers exist in 'include'
- Code is in a namespace with the same name as the directory.
- Headers are included like this: `#include <maxbase/stopwatch.hh>`
- In case the library is published on its own, the include directives stay
  the same (headers would be in /usr/include/maxutil, for example).
- I am not advocating many small libraries. But if some larger library
  is written, say a general purpose statemachine, it would not pollute
  util/maxutil but go to util/maxsm.
  Another example: Worker. It is a larger concept, but used so widely in
  code that it could very well live in maxutil.

NOTE: this was previously Review Request #6245.
2018-06-15 12:05:57 +03:00
68c0c59d92 The purpose of this library is to create a utility library that is not
dependent on maxscale for use in both maxscale and system test, and
possibly other apps. As time permits general purpose utilities from
maxscale-common can be moved to the new library.

Here are answers to questions you may have:
- Headers and sources are separated to allow public/private headers.
- A top level directory "util" contains the libraries. The current
  structure is simply util/maxbase. The name of the top level
  directory is not important.
- Code is in a namespace with the same name as the directory.
- Headers are included like this: \`#include <maxbase/stopwatch.hh>\`
- In case the library is published on its own, the include directives stay
  the same (headers would be in /usr/include/maxbase, for example).
- I am not advocating many small libraries. But if some larger library
  is written, say a general purpose statemachine, it would not pollute
  util/maxutil but go to util/maxsm.
  Another example: Worker. It is a larger concept, but used so widely in
  code that it could very well live in maxutil.

NOTE: this was previously Review Request #6245.
2018-06-14 16:10:22 +03:00
a367267756 Enable newer compiler for CentOS 6
Install devtoolset-4 on CentOS 6 to enable C++11 on all supported
platforms. Change compiler flags to `-std=c++11` to explicitly use C++11.
2018-06-12 19:40:34 +03:00
f388e2f838 Merge branch '2.2' into develop 2018-02-12 14:00:40 +02:00
eab4ec1768 Add component specific package descriptions
The package descriptions, summaries and licenses now use a generic
mechanism. This makes it easier to add new components that only include
small parts or use a different license.

Also updated the descriptions, the license versions and package summaries
for the main packages.
2018-02-12 13:31:10 +02:00
fcde23e6fe Merge branch '2.2' into develop 2018-02-08 18:40:29 +02:00
b2f17494ad Always build Connector-C
The connector is now unconditionally build from source.
2018-02-08 12:48:56 +02:00
5326c8db5c Merge branch '2.2' into develop 2018-02-08 12:48:06 +02:00
2b25ec13d8 Include the connector directory in the right place
The directory where the headers are located should be included only after
the connector is built or found.
2018-02-08 12:35:03 +02:00
2181c9d240 Include MariaDB Connector-C headers first
The MariaDB Connector-C headers that are built by MaxScale must be
included before any system headers.

Fixed code that explicitly included the <mysql.h> header to use the
<maxscale/protocol/mysql.h> wrapper instead.
2018-02-07 16:07:17 +02:00
0696f3f60a add -fno-omit-frame-pointer to cflags (#165) 2018-01-31 11:57:25 +02:00
070df73d99 MXS-1538: Integrate CDC-Connector into MaxScale
Added the files from the repository to MaxScale. Created a new CMake
function for installing development libraries.
2018-01-22 15:29:21 +02:00
bd39284f9c Merge branch '2.1' into 2.2 2017-10-03 14:30:06 +03:00
69557c650e Fix stack trace generation
The stack traces weren't logged as the LOG_ALERT priority wasn't enabled
by default. As an alert is intended to be something that must leave a
trace somewhere, and as such, it must not be possible to disable it. For
this reason, it is acceptable to always log the message if the priority is
LOG_ALERT.

Added the -rdynamic linker flag so that all symbols are exported when
linking MaxScale.

As the stack trace is printed in a signal handler, the first attempt
should be to print the stack trace to the standard output. This way the
output is printed before an attempt to use malloc is made when it is
logged to the logfile.
2017-09-30 12:37:40 +03:00
fb9b027842 Enable optional use of ASAN
AdressSanitizer is a lightweight memory error detector that instruments at
compile time instead of at execution time. This allows serious memory
errors to be detected without the cost of slowing down the whole program
that often happens when Valgrind is used. It is also easier to enable for
test runs as it is a simple compiler flag.
2017-08-17 15:02:16 +03:00
161776d576 MXS-1300: Add more MaxCtrl cluster tests
Added scripts that start two MaxScale on the same machine. This allows the
cluster synchronization commands to be tested locally.
2017-08-09 11:39:24 +03:00
67b2654f50 Move REST API test scripts into a common directory
Moved and renamed the starting and stopping scripts from the REST API
tests to a common directory. This way the MaxCtrl tests can use the same
scripts to start and stop MaxScale.

Also moved the test configuration file into the `test/` directory and
changed some of the default directory locations.
2017-07-18 11:37:18 +03:00
d59d3ab638 MXS-1300: Combine REST API and MaxCtrl tests
The REST API tests are now located under the maxctrl directory. This
allows both tests to use the same framework for testing.
2017-07-18 11:37:18 +03:00
61241f9e07 Remove old feedback system
The feedback system wasn't used and was starting to cause problems on
Debian 9 where the libcurl required different version of OpenSSL than what
MaxScale was linked against.
2017-07-10 16:03:50 +03:00
469b432ebe Detect and handle OpenSSL 1.1
OpenSSL 1.1 supports most of the native threading libraries, including
pthread. This means that only versions before 1.1 need the thread handling
code.
2017-06-30 10:42:20 +03:00
cb57e10761 Develop merge
Develop merge
2017-06-29 15:34:22 +02:00
46a04773a4 Merge branch '2.1' into develop 2017-06-20 11:01:08 +03:00
b29cda10a2 Merge branch '2.0' into 2.1 2017-06-20 10:45:02 +03:00
ce8d712b46 Add version to VERSION.cmake filename
The VERSION.cmake file now includes the major and minor versions in the
filename. This will prevent merge conflicts when merging changes upstream.
2017-06-15 10:13:19 +03:00
a72d73fa3b Always build Jansson
The library is now built even if the system has some version of Jansson.
2017-06-14 14:36:30 +03:00
7231563937 Always use bundled Pcre2 library
Some additions to config.cc will require a recent version of PCRE2.
The system libraries may not be up to date. The pcre2 source is
bundled with MaxScale anyway, so using it is a simple way of controlling
the library version.
2017-06-01 15:23:31 +03:00
75e7ac35ed MXS-1220: Always build libmicrohttpd
This allows MaxScale to use the PATCH functionality that's only in the
newer versions of the library. It also removes some of the problems that
exist with older systems that don't support all of the options.
2017-05-24 15:05:10 +03:00
322983a5f4 Merge branch '2.1' into develop 2017-05-17 13:48:52 +03:00
8e2c7fd952 Merge branch '2.0' into 2.1 2017-05-10 09:12:42 +03:00
5c0429466c Always include Jansson header directory
The directory is always included even if we are not building the Jansson
library ourselves.
2017-05-03 14:16:37 +03:00
0fde5f22df Use C++0x explicitly
Using C++0x instead of the actual C++11 standard allows older systems to
use the Technical Report additions in pre-C++11 compilers.
2017-04-05 19:46:49 +03:00
454248e3ec Fix builds with system Connector-C
If the system Connector-C is used, we must generate a fake connector-c
target that the core can depend on.
2017-03-09 20:20:02 +02:00
41ff01d16d Merge branch '2.0' into 2.1 2017-03-09 10:01:38 +02:00
84a6848f10 Add build information to --version-full
If the Jenkins build information is available, print it in the full
version output.
2017-03-09 09:32:37 +02:00
d617a0b7b9 Move testfilter, router etc to examples
Also changed Plugin devel manual to match. Modified roundrobinrouter
to use static_cast due to the change in router api definitions.
2017-02-28 17:51:48 +02:00