Commit Graph

13601 Commits

Author SHA1 Message Date
7fe18a0488 Add fatal signal handlers for unit tests
This way debug assertions print a full stacktrace for unit tests.
2019-06-11 21:38:47 +03:00
470968a296 Fix unit test failures
The new net_write_timeout value needed to be explicitly defined for the
tests.
2019-06-11 21:38:47 +03:00
6166da76ea Add arguments to mxb_assert_message
The macro can now be used to print runtime information in a printf-like
manner. This makes it easier to see exactly why an assertion has failed.
2019-06-11 21:30:45 +03:00
74f61c233d MXS-2558: Reuse loaded users
When users are loaded, they can be reused across all routing workers.
2019-06-11 21:30:45 +03:00
d0e6921604 Improve switchover undo when new master fails
Now the monitor properly restores the old master by running promotion code on it.
Also, binlog is disabled when enabling server events.
2019-06-11 17:15:43 +03:00
53606934a6 Merge branch '2.3' into develop 2019-06-11 16:35:26 +03:00
95606370c8 MXS-2551 Do not print deprecated parameters into serialized config files
In MaxScale, a "deprecated" parameter is not in use and can be ignored.
Leaving the parameters out of serialized configuration files avoids warning
messages.
2019-06-11 15:55:35 +03:00
1e3da20409 Merge branch '2.3' into develop 2019-06-11 13:54:51 +03:00
acc5863fe2 MXS-2442 ':N' accepted as pos. parameter in Oracle mode 2019-06-11 13:53:09 +03:00
c68cb788cc MXS-2552 Update DISK plugin documentation 2019-06-11 13:21:17 +03:00
40851f8a30 MXS-2556 Use configured master 2019-06-11 12:07:27 +03:00
ba4099799f MXS-2556 Add persist_performance_data arg to smartrouter 2019-06-11 11:59:08 +03:00
04fdaf1fdb MXS-2556 Make config::Configuration aware of its object
The name of the object (i.e. the section name from the configuration
file), is now stored in the configuration object for that object.

That way, more contextual and hence morfe user friendly errors and
warnings can be generated.
2019-06-11 11:05:15 +03:00
df5377f135 MXS-2556 Check if TCP/IP socket is used and warn about it
If the server (a real one or a service exposed as a server) is
on the same machine as MaxScale, then for performance reasons
a Unix domain socket and not a TCP/IP socket should be used.
2019-06-11 10:48:42 +03:00
acdc3b2396 MXS-2556 Add master configuration handling to SmartRouter 2019-06-11 09:46:04 +03:00
68af4cb62e MXS-2556 Rename configure -> post_configure
Rename config::Configuration::configure() to
config::Configuration::post_configure(). Latter name makes it
unambiguously clear at what point the function is called.
2019-06-11 09:46:04 +03:00
a6b456dfbd MXS-2556 Add support for routers to new config mechanism 2019-06-11 09:46:04 +03:00
77197d2ce1 MXS-2556 Add Server type to new config mechanism
- Add test as well
- Sort test so that the types are tested in alphabetical order
2019-06-11 09:46:04 +03:00
b2f44cefe7 MXS-2556 Don't crash if authenticator not found 2019-06-11 09:46:04 +03:00
a2b046a482 MXS-2512 Use typenames consistently 2019-06-11 09:44:27 +03:00
b09a4e676d MXS-2512 Do not recalculate information that exists
As the end of the error packet is known, it is better to pass
around an iterator to that instead of recalculating it.
2019-06-11 09:44:27 +03:00
9d1f094c45 MXS-2512 Add test for trx replay due to rollback
The test performs the following:

  CREATE tbl (x INT PRIMARY KEY)

  t1                            t2
  BEGIN                         BEGIN
  INSERT INTO tbl VALUES (1)
                                SELECT * FROM tbl FOR UPDATE

That will cause t2 to wait.

  INSERT INTO tbl VALUES (0)

That will cause t2 to be rolled back due to a deadlock.

Without transaction replay, the SELECT will return with an error.
With transaction replay, the deadlock error will be caught, the
transaction replayed and SELECT will return successfully.
2019-06-11 09:44:27 +03:00
b222a17ed9 MXS-2512 Update error information in additional place
An error may be returned directly or as part of a result set.
Both cases must be handled.
2019-06-11 09:44:27 +03:00
e1b611aa06 MXS-2512 Use existing information
As an error returned by the server is now stored inside RWBackend,
irrespective of whether it is returned solely or e.g. last after
a result set, there is no need to examine the GWBUF in rws, but
we can use the information that exists.
2019-06-11 09:44:27 +03:00
aa9b6cb8c5 MXS-2512 Store received error during backend processing
If a server returns an error, it will be retained inside RWBackend
so that it later is accessible without having to parse the GWBUF
again.
2019-06-11 09:44:27 +03:00
b50193a868 MXS-2512 Extend dbg_decode_response()
Now capable of decoding GWBUF containing multiple packets.
2019-06-11 09:44:27 +03:00
b49aeae1c8 Avoid using obsolete functions in reset-replication
Removes some duplicate functions.
2019-06-10 15:04:25 +03:00
190c0ac634 MXS-2437 Base router for Smart Router.
This is the base for Smart Router. Review and TODO comments are in the
code. This commit will be squashed several times so don't pay attention to this
specific commit message. I will add and remove TODO's in the code, rather
than save them in git commits. RBCommons will contain the history.
2019-06-10 14:40:39 +03:00
4efa9dbeea Remove maxscale/alloc.h
The remaining contents were moved to maxbase/alloc.h.
2019-06-10 14:11:25 +03:00
82229b7a1e Merge branch '2.3' into develop 2019-06-10 14:08:17 +03:00
57029bb1a1 MXS-2445 Add logrotate config file 2019-06-10 12:51:03 +03:00
e078f95a42 MXS-1550 Add net_write_timeout paramater for service
net_write_timeout is used to timeout writes take too long.
2019-06-10 10:31:35 +03:00
fc9ef715bd Move last MariaDB-Monitor settings inside class 2019-06-07 11:42:21 +03:00
926f0057c2 Move QueryResult-class to a separate file
The maxsql/src/mariadb.cc-file contains only general utility functions.
2019-06-07 11:32:46 +03:00
655e5fab5b Move length-encoded integer/string functions to maxsql 2019-06-07 11:32:46 +03:00
5e03ff35eb Continue external command cleanup
Simplify serverlist creation code.
2019-06-07 11:30:44 +03:00
9fa2328feb Clean up external command argument substitution
Use a single function for checking match and for replacing.
2019-06-07 11:06:45 +03:00
1ba77b59e2 MXS-2548 Show correct monitor state in "maxadmin list monitors"
The code OR:d with 0.
2019-06-06 17:09:41 +03:00
662a2adaa1 Merge branch '2.3' into develop 2019-06-06 16:44:46 +03:00
65975a38e2 Add test for MXS-2355
The test attempts to log in using mysql_clear_password.
2019-06-06 16:36:36 +03:00
799e9d67e6 Merge branch '2.3' into develop 2019-06-06 16:05:30 +03:00
7a63a17278 MXS-2485 Add suport for split query packets (from client side) 2019-06-05 20:05:29 +03:00
6a5d36e4bd MXS-2485 Handle COM_STATISTICS and COM_STMT_FETCH. Rearrange a bit. 2019-06-05 20:05:29 +03:00
0469d57ede Merge branch '2.3' of github.com:mariadb-corporation/MaxScale into 2.3 2019-06-05 14:53:28 +03:00
ba60b92612 Merge branch '2.3' into develop 2019-06-05 14:48:43 +03:00
f0c4fd5723 MXS-2250 Add test that reveals the problem
Before the MXS-2250 fix, the following ends with an error:

    CREATE TEMPORARY TABLE t (f INT);
    DESCRIBE t;

Reason is that the first is sent to the master (and the table will
not be replicated to slaves) and the latter to some slave.
2019-06-05 14:29:30 +03:00
b8d601aab2 MXS-2250 Reveal table information for 'DESCRIBE tbl'
When a statement like 'DESCRIBE tbl' is classified, the table
name will now be available so that a router can check whether the
table is a temporary one. In that case, the statement must be sent
to the master.
2019-06-05 14:28:45 +03:00
16005c452e run create_user* under sudo 2019-06-05 13:42:39 +03:00
de978be955 remove '-u root' from create_user*.sh
Call of MariaDB client from local machine with sudo with '-u root' parameter
does not work with 10.4
2019-06-05 12:57:46 +03:00
8fa8181009 MXS-2540 Use new conf. mech. in Clustrix monitor 2019-06-05 11:10:28 +03:00