1315 Commits

Author SHA1 Message Date
VilhoRaatikka
9ce36d7242 Merge branch 'master' of https://github.com/skysql/MaxScale 2014-08-29 14:46:06 +03:00
VilhoRaatikka
ed94f08b4e Added rule version.h: $(ROOT_PATH)/VERSION 2014-08-29 11:37:41 +03:00
VilhoRaatikka
cf5821d4ef Added expected results for missing queries. 2014-08-26 11:14:51 +03:00
VilhoRaatikka
69104d7dee skygw_utils.cc:replace_literal: Fixed regular expression which, for example, accepted "200" with needle "2"
query_classifier.cc: fixed invalid argument list in logging command.
input.sql: added a few previously failed cases for canonical query test
2014-08-26 11:08:05 +03:00
VilhoRaatikka
fd125f4a42 Merge branch 'MAX-160' of https://github.com/skysql/MaxScale into MAX-160
Conflicts:
	query_classifier/test/canonical_tests/input.sql
2014-08-25 22:22:44 +03:00
VilhoRaatikka
c5fbb1f295 query_classifier.cc:parsing_info_done: calling mysql_thread_end caused segfauls when same thread tried next time call free_embedded_thd because thread's sysvar was set to NULL in mysql_thread_end.
Added a few lines to canonical query test's input script which are not handled correctly.
2014-08-25 22:17:21 +03:00
Markus Makela
4ab7112db7 more test cases for canonical queries and makefile typo fixes 2014-08-25 15:24:23 +03:00
markus456
2694c69186 Merge pull request #30 from skysql/canonical_query_tests
Canonical query tests
2014-08-25 09:48:16 +03:00
Markus Makela
662b4b00ee the errmsg.sys file is now copied during test building 2014-08-22 20:50:54 +03:00
Markus Makela
73707cc9da canonical query tests for query classifier 2014-08-22 20:44:26 +03:00
VilhoRaatikka
ee52ac64a9 query_classifier.cc:skygw_get_canonical: if the item to be replaced is an empty string "", it is processed differently from the other cases due to difficulties to get wanted result by adding special rule for that to regex.
query_classifier.h: added parsing information structure to query classifier away from buffer.h.
buffer.c:introduced a buffer object which includes object pointer and a clean-up call-back function. Buffer objects form a list which is cleaned up by the last referrer of the buffer, as a part of gwbuf_free. Buffer object list is protected by a spinlock gwbuf_lock.
	Also added identifier type, bufobj_id_t which is enumerated type and currently includes one value only, GWBUF_PARSING_INFO. Added also a bitfield for information about the buffer. It currently has one type only, GWBUF_INFO_PARSED indicating that buffer content is parsed and there is buffer object of type GWBUF_PARSING_INFO.
skygw_utils.cc:replace_literal:changed regexec matching to case insensitive because user-defined literals are sometimes converted to upper-case ones.
2014-08-22 19:01:56 +03:00
VilhoRaatikka
3bc88e4eb9 skygw_get_canonical didn't return NULL pointerin cases where parsing info didn't exist or something went wrong. 2014-08-21 23:31:23 +03:00
VilhoRaatikka
3a5b8ef64c query_classifier.cc: cleaned up and simplified skygw_get_canonical
skygw_util.cc:fixed memory allocation issue where terminating byte wasn't counted. Added some error checks.
2014-08-21 23:08:21 +03:00
VilhoRaatikka
8d1eae6fde Fixed comment. 2014-08-21 22:34:50 +03:00
VilhoRaatikka
fa2189373d query_classifier.cc: query_is_parsed is now global function and can be used to check whether parsing information already exists in the buffer.
skygw_utils.cc: removed replace_str and implemented replace_literal which replaces user-provided literals in query with predefined string "?". Replacing is done one by one, so it is suboptimal ipmlementation since all literals could be passed to replacement function in one call and processed all before returning.
2014-08-21 22:28:23 +03:00
VilhoRaatikka
4a2d81e066 Merge branch 'MAX-160' of https://github.com/skysql/MaxScale into MAX-160 2014-08-20 22:19:51 +03:00
VilhoRaatikka
c501d4d4e1 Changes related to canonical query format implementation.
query_classifier.cc: Now query can be parsed outside query_classifier_get_type by calling function parse_query. It creates parsing_info_t struct which is then added to the GWBUF which also includes the query. Parsing information follows the buffered query and it is freed at the same time with query buffer, in gwbuf_free.
buffer.c: additions of parsing information to gwbuf struct.
modutil.c: added function which returns query from GWBUF in plain text string.
readwritesplit.c:routeQuery now only calls query_classifier_get_type to get the query type instead of extracting plain text query from the GWBUF buffer.
2014-08-20 22:10:36 +03:00
Vilho Raatikka
c432d052e5 Merge pull request #29 from skysql/null_filter_fix
Fix to bug #479, http://bugs.skysql.com/show_bug.cgi?id=479
2014-08-20 15:37:05 +03:00
Markus Makela
e329d8cf13 Fix to bug #479, http://bugs.skysql.com/show_bug.cgi?id=479
service.c was counting unfound filters towards the filter chain size.
2014-08-20 15:15:45 +03:00
Mark Riddoch
24e16e97ed Updates for unit tests 2014-08-20 11:07:28 +01:00
Mark Riddoch
d6a2ef6996 Misc fixes to doxygen comments 2014-08-19 13:22:40 +01:00
VilhoRaatikka
13dfd34d5d Test use for cacnonical query function. Effective in debug build only. 2014-08-19 09:39:40 +03:00
VilhoRaatikka
fb3a950a18 Completed skygw_get_canonical by adding NULL checks and debug assertions. Replacable literal types are now INT_ITEM, STRING_ITEM, DECIMAL_ITEM, REAL_ITEM, VARBIN_ITEM and NULL_ITEM. 2014-08-19 09:07:18 +03:00
Mark Riddoch
3dc09dfe43 Addition of spinlock unit test 2014-08-18 18:26:14 +01:00
VilhoRaatikka
544e64a301 query_classifier: implemented skygw_get_canonical which returns a copy of original string with given substrings being replaced with questionmarks.
skygw_utils.cc: added string replacement function for use of skygw_get_canonical
2014-08-18 14:19:46 +03:00
Vilho Raatikka
087c4720bb Merge pull request #23 from hholzgra/hartmut-DEL
Hartmut del
2014-08-18 09:20:03 +03:00
Vilho Raatikka
85c88dbd6b Merge pull request #22 from hholzgra/hartmut-DEL
consistently use DEL instead of rm in Makefiles
2014-08-18 09:10:58 +03:00
Hartmut Holzgraefe
fb87f68368 consistently use DEL instead of rm in Makefiles 2014-08-17 21:02:24 +00:00
Timofey Turenko
85ebc6d543 add gcov patch 2014-08-15 17:41:46 +03:00
Vilho Raatikka
c2bee45a10 Merge pull request #19 from skysql/session_variable_test
more stress tests for rwsplit router
2014-08-15 13:55:01 +03:00
Markus Makela
d174740b08 Merge remote-tracking branch 'origin/release-1.0beta' into session_variable_test 2014-08-15 13:48:04 +03:00
Markus Makela
be52b3a71e more stress tests for rwsplit router 2014-08-15 13:41:56 +03:00
Vilho Raatikka
285605b33f Merge pull request #18 from hholzgra/hartmut_README
fixed wrong server port in README
2014-08-15 08:31:21 +03:00
Hartmut Holzgraefe
7f18914d90 fixed wrong server port in README 2014-08-15 02:51:16 +02:00
VilhoRaatikka
902004c1ee Fix to bug #463, http://bugs.skysql.com/show_bug.cgi?id=463
mysql_common.c:gw_MySQL_get_next_packet didn't handle case where an insert command followed by alter table in the same read buffer. It shouldn't been possible without multi-statement being set.
2014-08-14 22:33:57 +03:00
VilhoRaatikka
2393ac57e9 mysql_common.c:protocol_add_srv_command didn't check that protocol status was MYSQL_PROTOCOL_ACTIVE and wrote to freed memory. 2014-08-14 17:23:46 +03:00
VilhoRaatikka
15e3ef6950 Merge branch 'release-1.0beta' of https://github.com/skysql/MaxScale into release-1.0beta 2014-08-14 15:19:23 +03:00
VilhoRaatikka
77e5525436 mysql_client.c:gw_error_client_event & gw_client_hangup_event: added session state check, if session is already closing, don't start redundant call to dcb_close.
mysql_common.c:mysql_protocol_done: added protocol state check. Used not to check it which caused double free of allocated memory.
2014-08-14 15:15:22 +03:00
Vilho Raatikka
35f64ff33a Merge pull request #17 from skysql/session_variable_test
rwsplit router tests for session variables
2014-08-14 14:38:26 +03:00
Markus Makela
01eb9822e0 rwsplit router tests for session variables 2014-08-14 14:34:22 +03:00
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
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
4ef1df4e9d 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. 2014-08-05 13:44:04 +03: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
MassimilianoPinto
932cec8523 branch release-1.0beta update 2014-08-04 17:14:19 +02:00
MassimilianoPinto
6ef5cbc609 30s is now the default value for replication lag
30s is now the default value for replication lag
2014-08-04 17:10:25 +02:00
VilhoRaatikka
b3656eba07 Added check for session state before calling route->closeSession 2014-07-30 20:43:43 +03:00
VilhoRaatikka
7a039e1a0b Added check for session state before calling router->closeSession 2014-07-30 20:40:08 +03:00
VilhoRaatikka
3585054b35 Bug 462, http://bugs.skysql.com/show_bug.cgi?id=462, fixed path MAXSCALE_HOME path expression in server/test/makefile 2014-07-29 22:28:44 +03:00