Commit Graph

326 Commits

Author SHA1 Message Date
4dd6f1b9c0 Added comment to assertion regarding to bref->bref_pending_cmd which is a one-slot buffer for database query. If sessoin command cursor is active when query is routed, instead of routing the query to backend it is stored to bref_pending_cmd to wait until previous (session) command is completed. The assertion traps if there is a command already in the bref_pending_cmd.
Situation is wrong because client shouldn't send new query before the previous (the pending one) is executed in backend and the reply is sent to the client.
2014-12-15 11:35:07 +02:00
04a92e40df Fixes to Coverity defects 84879 84878 72752 72742 2014-12-15 06:28:47 +02:00
a4968f2521 Complete fix candidate for #645, http://bugs.skysql.com/show_bug.cgi?id=645 and #648, http://bugs.skysql.com/show_bug.cgi?id=648
tee.c:closeSession removed unnecessary dcb_free, router/service closes all backend DCBs and the client DCB, and client DCB is the one that was tried to free in closeSession.
readwritesplit.c:routeQuery now handles untyped and typed GWBUFs. Untyped means that read buffer may consist of incomplete and multiple MySQL packets. Typed buffer always consists of a single MySQL packet (which can be split to many buffers inside GWBUF).
Fixed Coverity cases #84840 and #84841
2014-12-14 11:26:15 +02:00
c31f971999 Fix candidate for #645, http://bugs.skysql.com/show_bug.cgi?id=645 and #648, http://bugs.skysql.com/show_bug.cgi?id=648
If readwritesplit.c:routeQuery gets a GWBUF whose type is UNDEFINED, then each MySQL packet is extracted from input buffer and passed to new function, route_single_stmt. Each extracted packet is stored in separate GWBUF and added types GWBUF_TYPE_MYSQL and GWBUG_TYPE_SINGLE_STMT which makes it possible to execute session commands and process reply packets properly.

Code nedes still cleaning but this is for testing atm.
2014-12-13 01:55:40 +02:00
bc104c0ef1 Merge branch 'release-1.0GA' into MAX-324 2014-12-08 22:37:15 +02:00
6a54d888de Merge branch 'release-1.0GA' of https://github.com/mariadb-corporation/MaxScale into release-1.0GA 2014-12-08 16:04:27 +02:00
5264a1abc9 Added function documentation, moved one non-error log entry to message log, cleaned up a bit. 2014-12-08 16:02:16 +02:00
8fed527ac9 Merge branch 'release-1.0GA' into blr 2014-12-08 09:21:38 +00:00
ce056dccd8 Update modue status of all GA modules 2014-12-08 09:19:35 +00:00
68fc849c6e query_classifier.cc:cleaned up some intendentions and brackets.
dbshard.h:removed unnecessary code
dbshard.c:removed unnecessary code, cleaned up a bit and made some required changes
readwritesplit.c:removed two unnecessary variable assignments.
2014-12-07 00:34:23 +02:00
e4c379bbdc Fix to bug 583 http://bugs.mariadb.com/show_bug.cgi?id=583
Changed rwsplit.sh to explicitly use /bin/bash
2014-12-03 19:41:06 +02:00
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
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
9aa828cd9b Added debug assertions to catch wrong DCB usage 2014-11-27 22:04:34 +02:00
3941f5c31d Added debug trace 2014-11-27 19:48:27 +02:00
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
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
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
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
34b155b6fe Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-17 13:58:18 +02:00
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
a96f2fe57b Fixed some typos and testing messages from CMake output. 2014-11-17 12:57:07 +02:00
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
419fda5514 Fixed false positive debug assertion 2014-11-14 23:13:40 +02:00
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
8c1e7172f3 Added debug logging for #615 2014-11-14 20:48:33 +02:00
e35ad0c5d3 Fix candidate for bug #615
Removed invalid debug assert
2014-11-14 17:50:07 +02:00
81009e7d19 Fix candidate to bug #615
Mark backend reference closed in handleError
2014-11-14 15:20:15 +02:00
2b11b53144 Fixes to Coverity defects 72681, 72683, 72691. 2014-11-12 17:25:49 +02:00
0ea4dd63a9 Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-11-11 14:25:49 +02:00
98a362b430 Fix to Coverity error 72685 2014-11-11 14:10:15 +02:00
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
24c1106abf Removed invalid assertion from readwritesplit.c 2014-11-10 17:05:40 +02:00
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
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
5490954e43 Disabled login tests. 2014-11-07 18:47:41 +02:00
c62261710b Fixed wrong mysql libraries being used in the tests 2014-11-07 18:32:37 +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
813529b476 Added a test for the time it takes to login through MaxScale with various routers. 2014-11-07 17:05:21 +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