365 Commits

Author SHA1 Message Date
VilhoRaatikka
b106560317 Fix to bug # 634, http://bugs.skysql.com/show_bug.cgi?id=634
COM_SHOW_SLAVE_STAT wasn't classified but it was treated as 'unknown' and thus routed to master.
2014-12-03 13:27:31 +02:00
VilhoRaatikka
1bfedbee1d Fix to bug #629, http://bugs.skysql.com/show_bug.cgi?id=629
Master was selected for routing target even there was a slave available.
2014-11-28 14:17:35 +02:00
VilhoRaatikka
9aa828cd9b Added debug assertions to catch wrong DCB usage 2014-11-27 22:04:34 +02:00
VilhoRaatikka
3941f5c31d Added debug trace 2014-11-27 19:48:27 +02:00
VilhoRaatikka
3e18e091c1 Fixed unreported bug in log_manager where a terminating character was added in the middle of log message. 2014-11-27 16:53:50 +02:00
VilhoRaatikka
9cc0e1316c Fix to #594, http://bugs.skysql.com/show_bug.cgi?id=594
Changes to readwritesplit.c:get_dcb caused regression
2014-11-19 13:27:43 +02:00
VilhoRaatikka
fd11e6a7f5 Session-specific logging. Added functions
void session_enable_log(SESSION* ses, logfile_id_t id)
and
void session_disable_log(SESSION* ses, logfile_id_t id)

Which switch specific log type on/off if the log type in question is not generally enabled.

Each thread carries a thread-specific struct log_info_t which includes members for current session id and bitfield for enabled log types for the current session. That information is checked before actual log write functions are called.

Each file where session-specific logging is used, must include the following exports:

/** Defined in log_manager.cc */
extern int            lm_enabled_logfiles_bitmask;
extern size_t         log_ses_count[];
extern __thread log_info_t tls_log_info;
2014-11-19 00:08:59 +02:00
VilhoRaatikka
1c4ffd2599 Fix to bug #597, http://bugs.skysql.com/show_bug.cgi?id=597
Changed the order of include directives in query_classifier.cc
2014-11-17 14:55:13 +02:00
VilhoRaatikka
34b155b6fe Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-17 13:58:18 +02:00
VilhoRaatikka
c9b679359f Made RWSplit to use slave selection criteria also during client session. Previously the criteria was use when slaves were selected for use of client session. 2014-11-17 13:40:18 +02:00
Markus Makela
a96f2fe57b Fixed some typos and testing messages from CMake output. 2014-11-17 12:57:07 +02:00
VilhoRaatikka
4f136fa4d2 Fixed backend selection logic in get_dcb. If slave is not found write a warning to error log and fall through to master selection. If master has changed or previous master's state has changed, routing fails. 2014-11-15 23:57:09 +02:00
VilhoRaatikka
419fda5514 Fixed false positive debug assertion 2014-11-14 23:13:40 +02:00
VilhoRaatikka
e790437fc0 Fixed debug assert. If session is closed its router session pointer is nullified and it is not error. 2014-11-14 22:35:23 +02:00
VilhoRaatikka
8c1e7172f3 Added debug logging for #615 2014-11-14 20:48:33 +02:00
VilhoRaatikka
e35ad0c5d3 Fix candidate for bug #615
Removed invalid debug assert
2014-11-14 17:50:07 +02:00
VilhoRaatikka
81009e7d19 Fix candidate to bug #615
Mark backend reference closed in handleError
2014-11-14 15:20:15 +02:00
Markus Makela
2b11b53144 Fixes to Coverity defects 72681, 72683, 72691. 2014-11-12 17:25:49 +02:00
VilhoRaatikka
0ea4dd63a9 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-11 14:25:49 +02:00
Markus Makela
98a362b430 Fix to Coverity error 72685 2014-11-11 14:10:15 +02:00
VilhoRaatikka
061fa62d29 Fixes to Coverity issues 77197 (mysql_common.c, dcb.c, mysql_client.c, skygw_debug.h), 72654 (poll.c), 72756 (mysql_backend.c), 72744 (mysql_backend.c), 77197 (mysql_common.c), 72746 (mysql_common.c), 72676 (mysql_common.c), 72705 (readwritesplit.c), 72697 (readwritesplit.c), 72652 (skygw_debug.h) 2014-11-11 14:10:06 +02:00
VilhoRaatikka
24c1106abf Removed invalid assertion from readwritesplit.c 2014-11-10 17:05:40 +02:00
VilhoRaatikka
a3675e9098 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-10 14:18:43 +02:00
VilhoRaatikka
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
Markus Makela
e86b51865c Fixes to Coverity errors 72653, 72685, 72707, 73391, 73393, 73394, 73410 and 73414. 2014-11-10 13:51:21 +02:00
Markus Makela
37fa9668a9 Added a check for MySQL client libraries for the connection tests and re-enabled the tests. 2014-11-10 09:06:23 +02:00
Markus Makela
5490954e43 Disabled login tests. 2014-11-07 18:47:41 +02:00
Markus Makela
c62261710b Fixed wrong mysql libraries being used in the tests 2014-11-07 18:32:37 +02:00
VilhoRaatikka
00245201bb Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-07 17:57:06 +02:00
VilhoRaatikka
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
Markus Makela
813529b476 Added a test for the time it takes to login through MaxScale with various routers. 2014-11-07 17:05:21 +02:00
Markus Makela
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
VilhoRaatikka
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
Markus Makela
8cfea996e7 Fixed an unassigned pointer causing memory corruption. 2014-11-06 20:04:18 +02:00
Markus Makela
c4d51f54cd Fixes to Coverity bugs:
72743
73407
73408
73409
73415
73419
2014-11-06 15:40:11 +02:00
VilhoRaatikka
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
Markus Makela
699d07a613 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-05 14:22:46 +02:00
Markus Makela
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
VilhoRaatikka
42fc241cb7 Added comment to server selection routine 2014-11-05 12:15:48 +02:00
VilhoRaatikka
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
VilhoRaatikka
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
VilhoRaatikka
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
VilhoRaatikka
848c7aa0b8 Fixes to Coverity cases 72678 (retry), 72693 2014-10-31 11:38:57 +02:00
VilhoRaatikka
16f2c39bea Fine tuning of log print. 2014-10-25 00:28:48 +03:00
VilhoRaatikka
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
VilhoRaatikka
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
VilhoRaatikka
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
VilhoRaatikka
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
VilhoRaatikka
4daf255d60 Fixed use of uninitialized variable. 2014-10-20 13:20:53 +03:00
VilhoRaatikka
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