Commit Graph

677 Commits

Author SHA1 Message Date
58e8c05c8a added detection of drop table targeting a temporary table 2014-08-31 20:19:47 +03:00
ecc89a823b added tests for temporary tables 2014-08-31 19:30:00 +03:00
45faa38877 added temporary table detection for reads 2014-08-31 07:39:26 +03:00
7629c455a6 partial implementation 2014-08-30 08:27:05 +03:00
7ea53f0141 Merge remote-tracking branch 'origin/MAX-160' into MAX-237
Conflicts:
	query_classifier/query_classifier.cc
	query_classifier/query_classifier.h
2014-08-29 11:02:03 +03:00
531d8d7b47 query_classifier.cc: added detection for CREATE TEMPORARY TABLE and setting a new query type QUERY_TYPE_CREATE_TMP_TABLE for it.
query_classifier.h: added QUERY_TYPE_CREATE_TMP_TABLE and QUERY_TYPE_READ_TMP_TABLE for use of temporary table support.
hashtable.c:Added variant of hashtable which is 'flat', that is, stored to existing memory instead of allocating memory as a part of the call. Existing function declarations don't change but added hashtable_alloc_flat for the purpose. Both hashtable_alloc and hashtable_alloc_flat now call the real allocation function, hashtable_alloc_real. hashtable_free only frees memory which is allocated in hashtable_alloc_real.
hashtable.h: added a flag to HASHTABLE struct to indicate whether hashtable owns its memory or not.
readwritesplit.h: Added RSES_PROP_TYPE_TMPTABLES property type to be used for keeping the hashtable for tablenames.
readwritesplit.c: Added comments about temporary table support implementation.
2014-08-29 10:08:48 +03:00
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
493feb49ba Fix for bug 410 - MaxScale.cnf server option is not parsed for spaces 2014-08-22 14:46:26 +01:00
c133c6ef4a Fix for bug 479 - Undefined filter reference in MaxScale.cnf causes a crash 2014-08-22 14:33:14 +01:00
3476558f52 Fixed soem errors from a cppcheck run
mbrampton@martin-office:~/Dropbox/development/skygit/MaxScale/server$ cppcheck -q core/*.c
[core/adminusers.c:302]: (error) Resource leak: fp_tmp
[core/filter.c:382]: (error) Uninitialized variable: me
[core/service.c:1071]: (error) Uninitialized variable: succp
2014-08-22 14:25:27 +01:00
4a2d81e066 Merge branch 'MAX-160' of https://github.com/skysql/MaxScale into MAX-160 2014-08-20 22:19:51 +03:00
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
65b25a825a Addition of adminusers unit test
Fix to filters unit test
2014-08-20 14:50:44 +01:00
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
baa655182c Merge branch 'master' into develop 2014-08-20 11:07:55 +01:00
24e16e97ed Updates for unit tests 2014-08-20 11:07:28 +01:00
d6a2ef6996 Misc fixes to doxygen comments 2014-08-19 13:22:40 +01:00
13dfd34d5d Test use for cacnonical query function. Effective in debug build only. 2014-08-19 09:39:40 +03:00
3dc09dfe43 Addition of spinlock unit test 2014-08-18 18:26:14 +01:00
34f6884920 Merge pull request #24 from hholzgra/hartmut-DEL
Hartmut del
2014-08-18 09:20:30 +03:00
087c4720bb Merge pull request #23 from hholzgra/hartmut-DEL
Hartmut del
2014-08-18 09:20:03 +03:00
fb87f68368 consistently use DEL instead of rm in Makefiles 2014-08-17 21:02:24 +00:00
dcb2070736 Merge branch 'release-1.0beta' of https://github.com/skysql/MaxScale into release-1.0beta
Conflicts:
	server/modules/protocol/mysql_common.c
2014-08-15 18:43:05 +03:00
d174740b08 Merge remote-tracking branch 'origin/release-1.0beta' into session_variable_test 2014-08-15 13:48:04 +03:00
be52b3a71e more stress tests for rwsplit router 2014-08-15 13:41:56 +03:00
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
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
15e3ef6950 Merge branch 'release-1.0beta' of https://github.com/skysql/MaxScale into release-1.0beta 2014-08-14 15:19:23 +03:00
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
35f64ff33a Merge pull request #17 from skysql/session_variable_test
rwsplit router tests for session variables
2014-08-14 14:38:26 +03:00
01eb9822e0 rwsplit router tests for session variables 2014-08-14 14:34:22 +03:00
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
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
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
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
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
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
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
b3656eba07 Added check for session state before calling route->closeSession 2014-07-30 20:43:43 +03:00
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
b68dc5ff2a develop update 2014-07-29 16:47:59 +02:00
3f4e67ccca Changed value for SERVER_SLAVE_OF_EXTERNAL_MASTER
Changed SERVER_SLAVE_OF_EXTERNAL_MASTER value to 0x0080 (128)
2014-07-29 16:46:39 +02:00
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
fa1f9ec131 Added unsigned char in modutil.c routines
Added unsigned char in modutil.c routines
2014-07-16 19:32:20 +02:00
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
4af2e58c86 Update plugin status to BETA 2014-07-04 09:23:40 +01:00
e3dc071549 Merge branch 'develop' of github.com:skysql/MaxScale into develop 2014-07-03 19:48:24 +03:00
ac914120b8 fix server/core/Makefile to make build with static lib working in Ubuntu 2014-07-03 19:35:16 +03:00
0036d6d8af Merge branch 'develop' of https://github.com/skysql/MaxScale into develop 2014-07-03 19:27:59 +03:00
39679447c9 Bugzilla #455, MaxScale crashed due missing buffer type information in multi-buffer responses. 2014-07-03 19:20:45 +03:00