1501 Commits

Author SHA1 Message Date
VilhoRaatikka
d3a79ce7c4 Partial fix to #463, http://bugs.skysql.com/show_bug.cgi?id=463
log_manager.cc: fixed block buffer overflow. Queries are logged to trace log and long queries exceed the bufsize in length. Those were written beyond allocated memory areas.
mysql_client_server_protocol.h: added mysql_protocol_state_t to indicate whether MySQL protocol object is allocated, usable or freed. Freed means that memory allocations made by the protocol are freed. That is, command history etc.
mysql_backend.c: gw_backend_hangup and gw_error_backend_event used to call error handling function although session was already closing. Added check for session state.
mysql_client.c: route_by_statement lost some packets in case where query was sent in multiple packets.
mysql_common.c: gw_MySQL_get_next_packet failed in packet handling with route_by_statement. When multi-packet query was merged into one, packet type wasn't copied.
	protocol_archive_srv_command and mysql_protocol_done didn't have proper locking in place which lead to occasional crashes.
2014-08-14 13:05:05 +03:00
Markus Makela
7401c8b1d2 Merge remote-tracking branch 'origin/Z2' into filter_harness 2014-08-12 14:44:40 +03:00
Markus Makela
430cd8d140 Merge branch 'Z2' of https://github.com/skysql/MaxScale into testing_makefile_fix 2014-08-12 14:43:30 +03:00
VilhoRaatikka
c02bb41a9d Added logging for case where route hint is to slave. 2014-08-12 10:27:15 +03:00
Markus Makela
3a639403bf added fixes to core tests failing even though they passed, hint syntax test only checking for a partial logfile and readwritesplit tests being run twice. 2014-08-11 14:27:33 +03:00
Markus Makela
e057268b5b filter testing harness 2014-08-11 12:13:18 +03:00
Markus Makela
f23a9e2b72 tests for hints and changes in makefiles and configuration files to enable testing them through 'make testall' 2014-08-08 13:19:23 +03:00
VilhoRaatikka
d4de582e16 Fix to #471, http://bugs.skysql.com/show_bug.cgi?id=471
Replication lag is not checked in precense of routing hint.
2014-08-08 11:11:28 +03:00
VilhoRaatikka
86a4c3ba90 Fix to #472, http://bugs.skysql.com/show_bug.cgi?id=472
Fix to #473, http://bugs.skysql.com/show_bug.cgi?id=473

Several memory issues. Read the code.
In general one-off hint is only added to gwbuf and freed in gwbuf_free. Stacked hint is copied to stack and to gwbuf. gwbuf is freed after routing but stacked hint is freed either in stop or when session is closed. All this applies to named hint as well except that in addition, it has one more copy in named hint struct which is emptied when session is closed.
2014-08-08 01:28:07 +03:00
VilhoRaatikka
0659d7abd0 Partial fix to Bug #470, http://bugs.skysql.com/show_bug.cgi?id=470.
hintparser.c:token_get_keyword: Handling for TOK_STRING was missing.
2014-08-06 18:09:06 +03:00
VilhoRaatikka
bcc04b840b Merge branch 'Z2' of https://github.com/skysql/MaxScale 2014-08-06 16:48:50 +03:00
VilhoRaatikka
b72e80b464 Fix for Bug #466, http://bugs.skysql.com/show_bug.cgi?id=466
hintparser.c:hint_parser:when string token is found, create a copy of the token value instead of copying the its address because token will be freed before the value is used.
	hint_next_token:didn't recognize '=' as TOK_EQUAL, fixed that. Read the code.
hint.c:hint_create_parameter: copy the pointer to parameter name instead of creating copy of it - pname is already copied from token before the call
readwritesplit.c:routeQuery:Hint name was copied when hint value was supposed to be copied, thus resulting invalid value for hinted parameter. Also fixed server type in trace log command.
skygw_debug.h:Added string for Relay server to macro STRSRVSTATUS.
2014-08-06 16:39:22 +03:00
MassimilianoPinto
d06cad1457 Documentation update
Documentation update
2014-08-06 09:33:55 +02:00
VilhoRaatikka
cf38dad43a Merge branch 'Z2' of https://github.com/skysql/MaxScale into Z2
Conflicts:
	server/core/modutil.c
2014-08-05 18:26:55 +03:00
VilhoRaatikka
08b99c121e Bug #468, http://bugs.skysql.com/show_bug.cgi?id=468, Query classifier accessed freed thread context. If parsing fails thd doesn't need to be freed because it holds correct information about command type.
session.c:session_setup_filters : fixed memory leak
hintparser.c: added token_free for HINT_TOKENs and fixed a few memory leaks.
mysql_client_server_protocol.h: added mysql_protocol_done which frees memory blocks pointed to by protocol members. Those can't be freed in dcb.c because dcb.c doesn't know about protocol's members.
mysql_backend.c:gw_backend_close: fixed memory leak
mysql_client.c: gw_client_close: fixed memory leak
mysql_common.c: added implementation of mysql_protocol_done
        :protocol_archive_srv_command: tried to fix memory leak. Some memory is still leaking according to valgrind. Removed use of uninitialized local variable len.
readwritesplit.c: Fix to bug #469, http://bugs.skysql.com/show_bug.cgi?id=469,  rwsplit counts every connection twice in master - counnection counts leak
	execute_sescmd_in_backend: fixed a memory leak - visible only in DEBUG=Y build.
readwritesplit/test/makefile: added target for hints tests
2014-08-05 18:14:06 +03:00
VilhoRaatikka
f738b2e0cb Fix to http://bugs.skysql.com/show_bug.cgi?id=469, connection counter leaks in master.
Removed redundant counter increments.
2014-08-05 16:38:00 +03:00
VilhoRaatikka
97ab902ede Fix to http://bugs.skysql.com/show_bug.cgi?id=469, connection counter leaks in master.
Removed redundant counter increments.
2014-08-05 16:31:39 +03:00
VilhoRaatikka
dbfaa5a8ea Fix to http://bugs.skysql.com/show_bug.cgi?id=469, connection counter leaks in master.
Removed redundant counter increments.
2014-08-05 16:28:26 +03:00
MassimilianoPinto
f2dc2e8671 Added log status change for ndbcluster monitor
Added log status change for ndbcluster monitor
2014-08-05 15:26:31 +02:00
VilhoRaatikka
7558abb6fa Bug #468, http://bugs.skysql.com/show_bug.cgi?id=468, Query classifier accessed freed thread context. If parsing fails thd doesn't need to be freed because it holds correct information about command type.
session.c:session_setup_filters : fixed memory leak
hintparser.c: added token_free for HINT_TOKENs and fixed a few memory leaks.
mysql_client_server_protocol.h: added mysql_protocol_done which frees memory blocks pointed to by protocol members. Those can't be freed in dcb.c because dcb.c doesn't know about protocol's members.
mysql_backend.c:gw_backend_close: fixed memory leak
mysql_client.c: gw_client_close: fixed memory leak
mysql_common.c: added implementation of mysql_protocol_done
    :protocol_archive_srv_command: tried to fix memory leak. Some memory is still leaking according to valgrind. Removed use of uninitialized local variable len.
readwritesplit.c:execute_sescmd_in_backend: fixed a memory leak - visible only in DEBUG=Y build.
2014-08-05 10:42:13 +03:00
VilhoRaatikka
6b3c7041e3 Bug #468, http://bugs.skysql.com/show_bug.cgi?id=468, Query classifier accessed freed thread context. If parsing fails thd doesn't need to be freed because it holds correct information about command type.
session.c:session_setup_filters : fixed memory leak
hintparser.c: added token_free for HINT_TOKENs and fixed a few memory leaks.
mysql_client_server_protocol.h: added mysql_protocol_done which frees memory blocks pointed to by protocol members. Those can't be freed in dcb.c because dcb.c doesn't know about protocol's members.
mysql_backend.c:gw_backend_close: fixed memory leak
mysql_client.c: gw_client_close: fixed memory leak
mysql_common.c: added implementation of mysql_protocol_done
	:protocol_archive_srv_command: tried to fix memory leak. Some memory is still leaking according to valgrind. Removed use of uninitialized local variable len.
readwritesplit.c:execute_sescmd_in_backend: fixed a memory leak - visible only in DEBUG=Y build.
2014-08-05 09:31:10 +03:00
MassimilianoPinto
ab7f057b63 Branch Z2 update 2014-08-04 17:10:57 +02:00
VilhoRaatikka
76d7f3d836 readwritesplit.c: corrected max_replication_lag with max_slave_replication_lag in hint parameter comparison functions. 2014-08-01 18:30:40 +03:00
VilhoRaatikka
65b121889b config.h: Added enumerated types MAX_RLAG_AVAILABLE and MAX_RLAG_UNDEFINED to be used instead of magic numbers as max_slave_replication_lag values.
readwritesplit.h: Added TARGET_RLAG_MAX to the list of hint targets. It is used in case of hint max_slave_replication_lag=<value>
readwritesplit.c: get_dcb is called when readwritesplit router chooses target backend for a query. Backend is selected from those the router has connection to. get_dcb now takes additional parameters, name and max_rlag. Name is used if there is a hint route to server <server name>. max_rlag is used for hint max_slave_replication_lag=<value> or if it doesn't exist, then for configure parameter max_slave_replication_lag=<configured value> or if both are absent, ignored.
2014-08-01 16:33:29 +03:00
VilhoRaatikka
4f3d746f4e MAX-157. Added support for hints in rwsplit router.
buffer.c: added memory release for hint of a GWBUF
hint.c: added bool hint_exists()
hint.h: added placeholder for hint type HINT_ROUTE_TO_ALL which doesn't have implementation yet.
filter/Makefile: fixed dependency issue
hintparser.c: added const char* token_get_keyword(), hint_parser:added NULL check, hint_next_token: fixed off-by-one bug
readwritesplit.h: added bitfield for hints' use, which includes route targets and flag for case where user hinted to route to named backend server.
readwritesplit.c: added function route_target_t get_route_target() for resolving route target based on 1) query type (from query_classifier) 2) transaction state (active/not) and 3) hints. Modified get_dcb, which is called in routeQuery to provide pointer to correct backend DCB. Now get_dcb also takes server unique name as a parameter if such a hint was found. for hints' use, which includes  enter the commit message for your changes.
2014-07-31 23:40:02 +03:00
VilhoRaatikka
ef924cdc00 Added check for session state before calling router->sessionClose 2014-07-30 20:54:43 +03:00
VilhoRaatikka
b3656eba07 Added check for session state before calling route->closeSession 2014-07-30 20:43:43 +03:00
MassimilianoPinto
744892e47c Support for MySQL Cluster
Support for MySQL Cluster with ndbcluster monitor and readconnroute
with router_option=ndb
2014-07-30 09:41:03 +02:00
MassimilianoPinto
8d19d339c5 Z2 update 2014-07-29 16:49:03 +02:00
VilhoRaatikka
d83a4673d7 Bug 462, http://bugs.skysql.com/show_bug.cgi?id=462, testall target fails in server/test to invalid MAXSCALE_HOME path specification.
Fixed path specification in server/test/makefile.

Added comments to mysql_backend.c
2014-07-29 12:11:00 +03:00
MassimilianoPinto
e91045d311 New monitor added to Makefile
New monitor added to Makefile
2014-07-28 09:53:42 +02:00
MassimilianoPinto
cbefda6517 monitor for SQL nodes in MySQL Cluster
New monitor added for SQL nodes in MySQL Cluster
2014-07-28 09:47:06 +02:00
Mark Riddoch
2dea68b9b3 Hint parsing 2014-07-25 16:33:49 +01:00
Mark Riddoch
b335bad380 Added some documentation 2014-07-16 16:11:27 +01:00
Mark Riddoch
87e66a0ea8 Revert "Implementation of HTTPD protocol, gwbuf properties and a dmeo web application"
This reverts commit 6fd5dff34902051f38932947493280e1e62dbeb1.
2014-07-15 17:53:39 +01:00
Mark Riddoch
6fd5dff349 Implementation of HTTPD protocol, gwbuf properties and a dmeo web application
interface to test the new httpd.
2014-07-15 17:39:31 +01:00
VilhoRaatikka
5357f6e2f2 Fixes symtoms described in http://bugs.skysql.com/show_bug.cgi?id=454
Added DCB state check to backend error evend handler. If state isn't DCB_STATE_POLLING anymore, socket is closed with purpose or error occurred but it has already been handled.
Client doesn't hang anymore at least with the documented method.
2014-07-04 14:26:55 +03:00
Mark Riddoch
4af2e58c86 Update plugin status to BETA 2014-07-04 09:23:40 +01:00
VilhoRaatikka
0036d6d8af Merge branch 'develop' of https://github.com/skysql/MaxScale into develop 2014-07-03 19:27:59 +03:00
VilhoRaatikka
39679447c9 Bugzilla #455, MaxScale crashed due missing buffer type information in multi-buffer responses. 2014-07-03 19:20:45 +03:00
MassimilianoPinto
a100b46680 Comments updated in get_root_master()
Comments updated in get_root_master()
2014-07-03 17:04:58 +02:00
VilhoRaatikka
a68d83ff7f Moved error messages about broken pipe to DEBUG build since in cases we've seen it is due to socket closing in same host. Other case is that MaxScale attempts to write COM_QUIT (ending message) to socket that other thread already closed.
Added counter clean-up code to readwritesplit closeSession. If operation counters have leaked, that is, due to some error in query routing some counter have been left positive, it is zeroed at session ending. This ensures that there is no garbage in global counter even if individual session wouldn't clean up its counters.
2014-07-03 12:12:21 +03:00
Timofey Turenko
0dfdc27ea5 revert -l:libmysqld.a to -lmysqld 2014-07-03 11:38:59 +03:00
VilhoRaatikka
6f6a5b67c9 Merge branch 'develop' of https://github.com/skysql/MaxScale into develop 2014-07-03 00:46:01 +03:00
VilhoRaatikka
e944ae2e70 http://bugs.skysql.com/show_bug.cgi?id=453
Fixed bug in session command resul handling. In case where backend sent error message the session command cursor wasn't updated properly.

Added check to bref_clear_state, if bref's waiter counter would go negative, decrement to global operation counter is skipped.
2014-07-03 00:43:30 +03:00
Timofey Turenko
e5ce7027ed Merge branch 'static_lib' into develop 2014-07-02 20:54:00 +03:00
Mark Riddoch
c3c18fb044 Fix for missing maxscaled sources in Makefile. Resolves issue with
make clean not removing maxscaled.o
2014-07-02 17:32:47 +01:00
Timofey Turenko
eb3a8eaab3 L:.a 2014-07-02 16:25:55 +03:00
Timofey Turenko
f379ee3d7a add -static for lmysqld 2014-07-02 15:52:16 +03:00
VilhoRaatikka
5c2333430d Removed configuration consistency checks, since monitor's configuration can't be easily read when router instance is created.
Fixed braces in slave select condition in select_connect_backend_servers.
2014-07-01 22:18:40 +03:00