Commit Graph

377 Commits

Author SHA1 Message Date
a3675e9098 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-10 14:18:43 +02:00
62270412cf readwritesplit.c: prevent switching the master during session. Added logging to cases where master has changed.
Moved DCB's member errhandle_called behing DEBUG flags to Release build. It shows if handleError is called for a DCB and makes it possible to avoid redundant calls.
2014-11-10 14:15:32 +02:00
e86b51865c Fixes to Coverity errors 72653, 72685, 72707, 73391, 73393, 73394, 73410 and 73414. 2014-11-10 13:51:21 +02:00
00245201bb Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-07 17:57:06 +02:00
44771dbc51 readwritesplit.c:handleError is meant to handle backend errors. Removed one call from mysql_client.c and only send error message to client instead.
Added checks to debug build to ensure that handleError is called before backend DCB is closed.
2014-11-07 17:55:05 +02:00
a4caac55c8 Fixes to Coverity errors:
72662
72702
72724
73397
73410
73414
73422
75424
75748
75789
75938
75939

Also includes a fix to a bug caused by a previous Coverity error change in canonizer.c
2014-11-07 11:52:40 +02:00
1ed3c9cc62 Fix to Coverity issues 72731 and 72708
In routeQuery: check if master has failed and in that case abort routing with an error sent back to the client.
handle_error_new_connection also tests for master failure and returns with error if that is the case.
2014-11-06 22:24:12 +02:00
8cfea996e7 Fixed an unassigned pointer causing memory corruption. 2014-11-06 20:04:18 +02:00
c4d51f54cd Fixes to Coverity bugs:
72743
73407
73408
73409
73415
73419
2014-11-06 15:40:11 +02:00
665315ea5c Fix to bug #612, http://bugs.mariadb.com/show_bug.cgi?id=612
Also added error logging in cases where memory allocation failed etc.
2014-11-05 22:04:36 +02:00
699d07a613 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-05 14:22:46 +02:00
36c6a61330 Fixes to coverity bugs:
72670: query_classifier/query_classifier.cc
72682: server/modules/filter/qlafilter.c
72679: server/modules/filter/tee.c
72716: server/modules/protocol/maxscaled.c
72694: server/modules/protocol/telnetd.c
71743: server/modules/routing/readwritesplit/readwritesplit.c
2014-11-05 14:18:38 +02:00
42fc241cb7 Added comment to server selection routine 2014-11-05 12:15:48 +02:00
3278be565a Fix to bug #609, http://bugs.mariadb.com/show_bug.cgi?id=609
If target can't be resolved, master is chosen. Bug cause master be chosen in most of the cases.
2014-11-05 11:18:25 +02:00
9ccbab1899 poll.c:dcb_close Don't call poll_remove_dcb anymore if DCB has already been removed from poll set.
mysql_backend.c, mysql_client.c free error message GWBUF after calling handleError
readconnroute.c:handleError send error message to client before returning.
readwritesplit.c:handleError don't free error message buffer anymore since the caller of handleError frees it.
2014-11-01 20:00:59 +02:00
00fded016b Fixes to Coverity tasks : 73267, 72686, 72672
Cleaned up warnings, and added checks to malloc return values and error log writes in case of failures.
2014-10-31 15:25:59 +02:00
848c7aa0b8 Fixes to Coverity cases 72678 (retry), 72693 2014-10-31 11:38:57 +02:00
16f2c39bea Fine tuning of log print. 2014-10-25 00:28:48 +03:00
236a72a6b6 Fix to bug #590, http://bugs.mariadb.com/show_bug.cgi?id=590
mysql_common.c:gw_send_change_user_to_backend creates new authentication message which is to be sent to backend. GWBUG type flags were not copied from original GWBUF to new one. Thus the information that this is a session command was lost and it was processed in a wrong way. Especially replies were all routed back to client which caused misbehavior.
2014-10-25 00:19:31 +03:00
7a1b35dc88 Fix to bug #590, http://bugs.mariadb.com/show_bug.cgi?id=590
readwritesplit.c:execute_sescmd_in_backend didn't set GWBUF_TYPE_SESCMD type to GWBUF the command is in. Thus reply wasn't processed properly. Instead all replies were sent to client.
2014-10-23 18:56:27 +03:00
287bc90465 Fix to bug #585, http://bugs.mariadb.com/show_bug.cgi?id=585
buffer.c:gwbuf_make_contiguous: when new buffer is created, copy original buffer's type to new buffer
modutil.c:modutil_replace_SQL: when new bugger is added to GWBUF, copy original buffer's type to new buffer
In all filters, merge all buffers of GWBUF to one before calling modutil:extract_SQL
2014-10-21 21:13:21 +03:00
d065be4824 readwritesplit.c:get_dcb assumed thet get_root_master_bref always returns non-null pointer. Changed it so that get_dcb_returns if it doesn't get master bref pointer. 2014-10-20 22:41:10 +03:00
4daf255d60 Fixed use of uninitialized variable. 2014-10-20 13:20:53 +03:00
ebd92c8741 readwritesplit.c:routeQuery if target is master but it is found out when get_dcb returns that master DCB has changed, routeQuery fails and logs to trace that master changed. 2014-10-20 10:40:32 +03:00
6041a7e12f Added server state information to trace log printing 2014-10-17 09:44:52 +03:00
9c49cd87b1 Fix to #571, http://bugs.mariadb.com/show_bug.cgi?id=571
In rwsplit router, merge multiple (query) buffers to one if necessary.
2014-10-15 11:25:17 +03:00
ebb3b52fdb Included the my_config.h header before any system headers if mysql headers were used. 2014-10-10 12:30:21 +03:00
aca8596efa mysql_client.c:gw_client_close didn't close client session in cases where session->state == SESSION_STATE_STOPPING. That is a bug and lead to situation where session wasn't closed at all.
Also changed 'authorization failed' to 'access denied'
mysql_common.c: fixed memory leak in gw_receive_backend_auth, and replaced error code '2800' with '28000'.
readconnroute.c:handleError didn't set *succp pointer so uninitialized value was used in caller's context.
makefile.inc: added -lm to linker flags
mysql_backend.c: added a few comments
2014-10-06 11:46:12 +03:00
c4ca1ddb13 Updated non-source files with new company name. 2014-10-01 15:21:47 +03:00
b0683d9b4d Updated the licensing year from 2013 to 2013-2014 2014-10-01 14:37:12 +03:00
52c0d0c768 Merge remote-tracking branch 'origin/develop' into header_rename 2014-10-01 05:24:02 +03:00
ca7ae0bb64 Fix to bug #557, http://bugs.mariadb.com/show_bug.cgi?id=557
query_classifier.cc: added function for printing combined query type from a bit field.
query_classifier.h: identify query types SHOW DATABASE, and SHOW TABLES to make log entries more understandable.
mysql_common.c: moved some trace log commands to debug log.
readwritesplit.c: moved some trace logs to debug log, added trace log commands to gather routing, query type and session information to one log entry.
skygw_debug.h: added string macros for several query and hint types.
2014-09-30 16:31:30 +03:00
f4e591e382 Changed 'SkySQL Gateway' to 'MariaDB Corporation MaxScale' 2014-09-30 13:15:03 +03:00
c344231f80 Renamed all occurences of SkySQL to MariaDB Corporation 2014-09-30 13:02:10 +03:00
5ec1a83f3b Fix to #478, http://bugs.skysql.com/show_bug.cgi?id=478
Execution of session commands failed because session commands and normal sql statements were executed in a wrong order if backend was executing previous session command while new sql stmt was routed to that backend. There was a window where ordering went wrong.
It is possible that one normal sql stmt arrives while previous sescmds are still being executed.

Introduced a new member in backend_ref_t structure, bref_pending_cmd where new sql stmt pointer is stored in that case. When sescmds are executed completely, that command is automatically executed next.
2014-09-26 15:40:32 +03:00
0f3db1c091 First changes for fixing #548, http://bugs.skysql.com/show_bug.cgi?id=548
dcb.c:dcb_process_zombies:added new parameter which tells what DCB the thread will use after calling dcb_process_zombies. Thus, processing that DCB is skipped.
readwritesplit.c:routeQuery:removed double free call for query buffer.
2014-09-17 18:02:44 +03:00
48c25155f5 Completion to fix for http://bugs.skysql.com/show_bug.cgi?id=547
server.h:added macro SERVER_IS_ROOT_MASTER for finding valid candidate for root master
readwritesplit.c: wrote open three if conditions in get_root_master_bref for clarity
2014-09-16 14:49:04 +03:00
7300e58787 Fix to #547, http://bugs.skysql.com/show_bug.cgi?id=547
readwritesplit.c:get_dcb now searches for master if slave is not available
2014-09-16 12:11:08 +03:00
3dc44ff6fd Fix to bug #544, http://bugs.skysql.com/show_bug.cgi?id=544
Changes to readwritesplit router.
2014-09-15 21:03:11 +03:00
a41a8d6060 Fix to bug #543, http://bugs.skysql.com/show_bug.cgi?id=543
All counters are now updated in routeQuery
Fix to bug #545, http://bugs.skysql.com/show_bug.cgi?id=545
All sql variable and session modification statements, such as autocommit-, and set <db> commands are routed to all nodes.
2014-09-15 19:01:04 +03:00
2012dfdd35 Fix to bug #541, http://bugs.skysql.com/show_bug.cgi?id=541
Long ~0.5MB queries blocked MaxScale.
mysql_client.c:gw_read_client_event: Fixed packet reading logic. Reading didn't work when packet exceeded read buffer size.
mysql_common.c:gw_MySQL_get_next_packet: number of bytes to be copied to continuous buffer was calculated wrong, thus resulting in broken packet.
readwritesplit.c:disabled creation of canonical query in debug build because it slows down the processing too much with long queries
2014-09-13 21:16:44 +03:00
8b5b4a17fe Merge from Z3
Merge from Z3
2014-09-11 12:51:16 +02:00
27e0ccd641 Fix for bug 447 - Error log flooded with same warnings if there are no slaves present 2014-09-11 11:03:53 +01:00
1154b25bff Fixed typo which made use_sql_variables_in paramter ineffective. 2014-09-10 21:20:12 +03:00
025f920ddb Replaced RWSplit parameters write_ses_variables_to_all and read_ses_variables_from_slaves with
use_sql_variables_in=[master|all] (default all)
Modified MaxScale Configuration And Usage Scenarios-Z3.pdf and MaxScale_template.cnf accordingly.
Fixed typo in server/modules/routing/readwritesplit/test/rwsplit.sh
2014-09-10 11:32:53 +03:00
4665f862d5 Fixed handling of temporary table reads which also used user- or system variables. Temporary table handling rules have precedence over others. 2014-09-09 14:34:08 +03:00
52b347ac07 readwritesplit.c:Fixed macro which excludes a block from compiled code. 2014-09-08 21:53:33 +03:00
f74493d922 server/modules/filter/Makefile: Fixed problem which prevented cleaning and compiling hintfilter library.
server/core/config.c: Removed unused if..else block from config_get_valint. Changed it also to return value which indicates whether the operation succeed. Added config_get_valbool similar to config_get_valint.
service.c:Added typelib-like struct and array of valid boolean values. Fixed parameter type test in service_set_param_value. Completed boolean type parameter handling.
hintparser.c:Fixed error message for non-maxscale hints.
readwritesplit.c:Added loading of configuration parameters from service to instance and from instance to each new session. Fixed routing condition in get_route_target. Modified get_route_target so that it takes also rw_read_sesvars_from_slaves and rw_write_sesvars_to_all as parameters.
skygw_types.h: added array size counting macro.
2014-09-08 21:44:23 +03:00
92889ad216 config.c: Added configuration parameter processing for read_ses_variables_from_slaves and for write_ses_variables_to_all . The values are read from config file, qualified and stored to service. Values are loaded when instance is created. This is limitation in current implementation and will change so that configuration is dynamically changeable. 2014-09-07 23:48:16 +03:00
d799331c50 Added support for fine-grained query classification which is needed for configurable support for user- and system variable execution. This is partial implementation to task MAX-242. Tests passed with make -C server/modules/routing/readwritesplit/test but this is intermediate commit. 2014-09-05 22:50:35 +03:00