190 Commits

Author SHA1 Message Date
counterpoint
e507933c48 Need to mark the DCB dcb_errhandle_called indicator if the router error handler is not called. 2015-09-18 09:19:32 +01:00
counterpoint
f3560512ff Suppress call to router error handling where there is no router session. 2015-09-18 09:04:32 +01:00
counterpoint
cfeaf7d6e9 Merge remote-tracking branch 'origin/develop' into MXS-329
Conflicts:
	server/core/session.c
2015-09-10 13:07:27 +01:00
counterpoint
296e306daa Set session pointer to client dcb to null when dcb is closed. 2015-09-10 12:54:44 +01:00
counterpoint
9f01d0ec3f Fix type. 2015-09-10 10:54:33 +01:00
counterpoint
f6916a23bd Move responsibility for closing DCB on error to router error handling. Check that routers remove or disable links to closed DCB. 2015-09-09 09:33:00 +01:00
Johan Wikman
160bbb70ee MXS-251: strerror
Replaces all calls to strerror with calls to strerror_r. The former
is non-thread safe while the latter is.
2015-09-05 15:52:13 +03:00
Martin Brampton
4a1ad3df69 Attempt solution to crash caused by leaving link to backend DCB in router session. 2015-09-05 08:53:19 +01:00
Johan Wikman
b6f5108d29 Fix for MXS-335
Response handling as aborted if there is not enough data.
2015-08-31 08:30:21 +03:00
counterpoint
9c5f622481 Additional spinlock in random_jkiss. Initial attempt at implementing dummy sessions to provide total consistency - used in mysql_client in relation to authentication - a single static dummy session is used and linked from the client dcb when authentication is not yet complete. 2015-08-28 15:30:06 +01:00
Markus Makela
2d9814e0f3 Fix to MXS-270: https://mariadb.atlassian.net/browse/MXS-270
Prepared statement query responses in multiple buffers are now handled properly.
2015-08-19 17:48:24 +03:00
Markus Makela
501ea8ffc2 Removed a debug assertion which was triggered with a valid query and added more logging. 2015-08-17 22:42:04 +03:00
Markus Makela
458598141b Added checks for possible NULL value and out-of-bounds reads. 2015-08-16 22:30:04 +03:00
Markus Makela
3992f262ca Fixed Coverity defects 2015-07-14 16:17:50 +03:00
Markus Makela
6497350ab7 Merge branch 'release-1.2' into develop
Conflicts:
	server/core/adminusers.c
	server/modules/protocol/mysql_client.c
2015-07-11 17:12:48 +03:00
counterpoint
4f5de063eb Merged dcb_read and dcb_read_n into a single function (dcb_read with an extra parameter). 2015-07-10 15:12:22 +01:00
Markus Makela
fb09cbf100 Fixed queries being routed when the session is already closing. 2015-07-07 13:15:23 +03:00
counterpoint
09fdb0a2c2 Hopefully final tidy up. 2015-06-23 14:58:53 +01:00
counterpoint
b880350cf3 Complete merge of latest develop branch 2015-06-22 10:39:13 +01:00
Markus Makela
f0aed1f666 Fixed possible null pointer dereferences in mysql_backend. 2015-06-17 10:05:56 +03:00
Martin Brampton
84d5af1e00 Throw away poll events that occur for persistent pool DCBs with no related session; fix typos. 2015-06-14 18:19:30 +01:00
counterpoint
393e25e953 Fix bug in dcb; rearrange mysql_backend gw_backend_close to cope with receiving DCB that is no longer linked to a session. 2015-06-09 12:03:58 +01:00
Markus Makela
6e01757455 Added error message to users when trying to connect to a MaxScale service that only allows SSL connections. 2015-06-02 06:39:51 +03:00
Markus Makela
54d242758f Revert "Removed walking of packets from mysql_backend and moved storing of partial packets to session command handling section."
This reverts commit 9e1dc40bb549fdaf05fb4f8c12dc159c30ad4c41.
2015-03-23 11:55:03 +02:00
Markus Makela
9e1dc40bb5 Removed walking of packets from mysql_backend and moved storing of partial packets to session command handling section. 2015-03-23 11:17:07 +02:00
Markus Makela
b416455f4f Added missing type to GWBUF returned from mysql_backend. 2015-03-22 16:53:51 +02:00
Markus Makela
6cfc2338c1 Small fix to modutil_get_complete_packets. 2015-03-22 10:33:35 +02:00
Markus Makela
55513cc998 Improved modutil_get_complete_packets to only allocate a single buffer. 2015-03-22 07:44:14 +02:00
Markus Makela
dcdb86e5a9 Fix to MXS-47: https://mariadb.atlassian.net/browse/MXS-47
mysql_backend now streams server response data.
2015-03-19 11:35:01 +02:00
Markus Makela
880adca73e Merge branch 'develop' into MAX-324 2015-03-05 10:45:48 +02:00
Markus Makela
bdbe55233d Fix to NULL dcb in mysql_backend.c 2015-02-25 12:10:33 +02:00
Markus Makela
9e7afeb302 Merge branch 'develop' into MAX-324
Conflicts:
	macros.cmake
	server/core/config.c
	server/core/service.c
	server/modules/routing/CMakeLists.txt
2015-02-24 06:26:55 +02:00
Markus Makela
aa4932bf2d Moved the housekeeper heartbeat to a separate header for ease of integration.
This keeps the behavior the same but allows the heartbeat to be used as a crude timer
without including everything the housekeeper.h header includes.

Moved the protocol level updates on the DCBs last_read value into dcb_read.
This keeps the implementation nice and compact.
2015-02-24 05:00:16 +02:00
Markus Makela
c47d2f3791 Added session timeouts.
The parameter 'connection_timeout' for services takes a value as seconds.
All sessions that have been idle for longer than this will be disconnected.
2015-02-20 22:16:43 +02:00
Markus Makela
ea88cea959 Merge branch 'develop' into MAX-324 2015-01-29 20:36:26 +02:00
VilhoRaatikka
270c0ebf8a Clean up, added comments, removed some dead code. 2015-01-27 10:24:37 +02:00
Markus Makela
db1ea422a0 Merge branch 'develop' into MAX-324
Conflicts:
	server/core/modutil.c
2015-01-20 04:25:40 +02:00
VilhoRaatikka
fca674b16a modutil.c: added modutil_reply_auth_error
mysql_backend.c:gw_change_user: instead of setting flags directly to replybuffer, set server command to backend's protocol object and reply the message directly to backend where flags are set and it is replied back to client.
2015-01-19 00:01:08 +02:00
VilhoRaatikka
6d2b38d4b6 Complementary fix to #694,http://bugs.mariadb.com/show_bug.cgi?id=694
RWSplit router handles query processing errors that happened in router by sending parse error reply to client. routeQuery fails only when backend has failed.
2015-01-17 22:40:52 +02:00
Markus Makela
db70163373 Merge branch 'develop' into MAX-324
Conflicts:
	query_classifier/query_classifier.cc
2015-01-15 13:17:42 +02:00
VilhoRaatikka
b3824a1eaf Clean up bits and pieces, removed some unnecessary checks. 2015-01-14 14:11:19 +02:00
Markus Makela
0187edf559 Merge branch 'develop' into MAX-324
Conflicts:
	query_classifier/query_classifier.cc
2015-01-14 04:56:58 +02:00
VilhoRaatikka
61efbfe687 Added comment to mysql_backend.c:process_response_data 2015-01-13 09:52:54 +02:00
Markus Makela
fed828eb29 Merge branch 'release-1.0GA' into MAX-324
Conflicts:
	server/MaxScale_template.cnf
	server/core/service.c
2015-01-06 04:45:30 +02:00
Markus Makela
ba009e5fd3 Fixes to Coverity defects 85010 84878 72752 72742 72719 and 73418.
skygw_utils.cc: Added function is_valid_posix_path that checks if a path is POSIX-compliant.
2015-01-05 06:05:56 +02:00
VilhoRaatikka
48f443782e Fixed a typo 2015-01-02 09:55:55 +02:00
VilhoRaatikka
a745383956 Added debug log to mysql_backend.c:gw_read_backend_event to tracm the case where less than 5 bytes is read from backend. This is potential issue with long result sets. 2015-01-02 09:53:24 +02:00
VilhoRaatikka
2c2d6f8b66 Clean up. Removed dead code and added comments. 2014-12-30 10:05:13 +02:00
VilhoRaatikka
635fcf708f Fix to bugs #665, and #664. Potentially to #649.
http://bugs.skysql.com/show_bug.cgi?id=665
http://bugs.skysql.com/show_bug.cgi?id=664
http://bugs.skysql.com/show_bug.cgi?id=649

dcb.c:dcb_final_free: (665):set dcb->session->client pointer to NULL so that it won't be read anymore and other threads won't try to close it.
	dcb_final_free:(664):don't free dcb->data, it is either freed in session_alloc if session creation fails or in session_free only.
session.c:if session creation fails, free dcb->data and remove links between client DCB and session.
mysql_backend.c:(665):gw_backend_close:check that session->client isn't NULL and that client DCB's state is still polling before calling dcb_close for it.
mysql_client.c:gw_mysql_do_authentication:if anything fails, and session_alloc won't be called, free dcb->data.
mysql_common.c:gw_send_authentication_to_backend:if session is already closing then return with error.
2014-12-29 20:19:01 +02:00
VilhoRaatikka
ff5fe23ce6 dcb.b:dcb_final_free:replaced ((dcb->flags & DCBF_CLONE)==0) with macro !DCB_IS_CLONE(dcb)
readwritesplit.h:Removed invalid macros which assumed that ROUTER_CLIENT_SES->rses_backend_ref always pointed to valid and used backend reference and thus included potential risk of NULL-pointer refernce.
mysql_backend.c and mysql_client.c:avoid executing CHK_PROTOCOL(p) after original DCB has been released the memory.
readwritesplit.c:Replaced RSES_CLEINT_DCB macro with a function which returns client DCB for a given router client session.
2014-12-23 16:10:27 +02:00