404 Commits

Author SHA1 Message Date
Markus Makela
518ef5050e Fixed debug asserts. 2015-06-05 12:15:19 +03:00
Markus Makela
e83799648a Fixed queries getting stuck when the SSL records were of the maximum allowed size. 2015-06-05 11:00:51 +03:00
Markus Makela
cc1f720ea3 Removed log flushing on every dcb_read_SSL if debug log is enabled. 2015-06-04 21:12:16 +03:00
Markus Makela
ce570685cd Moved assertions around. 2015-06-04 19:31:58 +03:00
Markus Makela
dceccce2ef Changed gwbuf_length function to GWBUF_LENGTH macro in dcb_read_SSL. 2015-06-04 16:52:43 +03:00
counterpoint
e395ab1442 Provide explicit time checking for age of persistent DCBs. 2015-06-03 16:47:02 +01:00
counterpoint
fe2f8e70d1 Add CHK_SERVER capability and test in dcb_persistent_clean_count 2015-06-03 15:39:06 +01:00
counterpoint
ef6b6566e6 Fixes? 2015-06-03 15:08:08 +01:00
Markus Makela
a033cbf200 Added more informative error messages when SSL handshake fails. 2015-06-03 14:14:05 +03:00
counterpoint
cb7eb5848b Fixes, tidying up, etc. 2015-06-03 12:03:00 +01:00
counterpoint
6e803c647b Fix bugs, try different arrangement of dcb_close code. 2015-06-03 10:02:27 +01:00
counterpoint
1a76fc141d Add configuration capabilities for persistent connections. 2015-06-02 15:44:57 +01:00
Markus Makela
a5de4fc503 Merge branch 'develop' into MXS-129 2015-06-02 12:21:05 +03:00
Markus Makela
fc8918b1f2 Added a dcb_connect_SSL function which starts a client SSL connection. 2015-06-02 09:15:08 +03:00
Markus Makela
d7232d8b6e Moved SSL structure to the DCB instead of the MySQL protocol.
This allows for non-MySQL SSL connections.
2015-06-01 20:51:26 +03:00
counterpoint
739ea82e36 Clean up modifications. 2015-06-01 14:05:31 +01:00
Markus Makela
a2768955e7 SSL handshake now successfully completes when a client connects with SSL enabled. 2015-06-01 13:50:22 +03:00
Markus Makela
0f814d3e73 Added SSL write and read functions. 2015-05-29 13:00:37 +03:00
counterpoint
e5b4984a12 Fix bugs. 2015-05-27 16:56:53 +01:00
counterpoint
23e9a7b4e2 Try out some more changes. 2015-05-27 16:41:06 +01:00
counterpoint
6c5e6a5959 Move code around to fix headers problem etc. 2015-05-27 10:17:35 +01:00
counterpoint
351f52b8e1 Add "show persistent {server}" 2015-05-27 09:57:18 +01:00
counterpoint
8964e76f84 Improve messages 2015-05-26 17:03:13 +01:00
counterpoint
d90ea82aaa Try different code, continue polling while not in use. 2015-05-26 16:31:52 +01:00
counterpoint
44fc324329 Fix bugs 2015-05-26 14:59:26 +01:00
counterpoint
fccb9df817 Add more status information to maxadmin displays 2015-05-26 14:54:32 +01:00
counterpoint
9d1b48da57 Move persistent from dcb_close to dcb_add_to_zombieslist 2015-05-26 11:25:10 +01:00
counterpoint
d7cd40e5a5 Bug fixes and improvements. 2015-05-22 15:53:54 +01:00
counterpoint
b51c5f52ef Fix problems in knowing user for persistent connections. 2015-05-22 14:23:14 +01:00
counterpoint
462bfe677b Fix some bugs; add info for maxadmin. 2015-05-22 11:17:17 +01:00
counterpoint
6f31357372 Initial changes for persistent connections - add some basic functionality. 2015-05-20 18:15:11 +01:00
counterpoint
fec1e66a5c Add comment for parameter, correct spelling in comment. 2015-05-12 11:53:11 +01:00
Markus Makela
1b0fd4576a Merge branch 'maxinfo' into develop
Conflicts:
	server/core/service.c
	server/core/session.c
	server/include/session.h
2015-03-04 11:33:00 +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
Mark Riddoch
8eb14235d1 Addition of DCB and Poll statistics in show status output 2015-02-20 10:05:50 +00:00
Mark Riddoch
8e941f7523 Addition of the MaxInfo filter and the generic MaxScale resultset 2015-02-18 17:25:13 +00:00
Markus Makela
da029140cd dcb_call_foreach now only calls the callbacks for those DCBs that are connected to the server. 2015-02-18 05:36:39 +02:00
MassimilianoPinto
98cbc34c6c Fix for bug #714
Fix for bug #714
2015-02-06 11:26:48 +01:00
VilhoRaatikka
270c0ebf8a Clean up, added comments, removed some dead code. 2015-01-27 10:24:37 +02:00
VilhoRaatikka
b3824a1eaf Clean up bits and pieces, removed some unnecessary checks. 2015-01-14 14:11:19 +02:00
VilhoRaatikka
f4f537a3e2 Fix to bug #673, http://bugs.skysql.com/show_bug.cgi?id=673
dcb.c:dcb_hashtable_stats:division by zero
hashtable.c:hashtable_get_stats: NULL-pointer reference
service.c:serviceStartPort:set service->users NULL to avoid referring to freed memory
users.c:dcb_usersPrintf: NULL-pointer reference
debugcmd.c:convert_arg: changed return value to 1 in case of error, 0 (==NULL) is valid but it indicates that there are no users loaded.
	execute_cmd: fixed command handling
2014-12-31 21:06:28 +02:00
Markus Makela
073db0f1e2 Added checks that the query was cloned in clientReply before waiting for a reply. 2014-12-30 23:05:13 +02:00
Markus Makela
e6607dca40 tee.c:
Added clientReply and setUpstream entry points
    Tee filter now waits for the branch session to be replied to and if the reply isn't received in five seconds it closes the branch session.
dcb.h:
    Added the DCBF_REPLIED flag that is currently only set in dcb_null_write
dcb.c:
    The DCBF_REPLIED flag is now set in dcb_null_write
2014-12-30 17:40:47 +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
Markus Makela
a1d7ccac2f Commented out a debug assert in dcb.c:917 2014-12-23 17:40:22 +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
VilhoRaatikka
f0d8ed0cf2 Fix to #657, http://bugs.mariadb.com/show_bug.cgi?id=657
session.c:session_free:if session is child of another service (tee in this case), it is the parent which releases child's allocated memory back to the system. This now also includes the child router session.
dcb.h: Added DCB_IS_CLONE macro
tee.c:freeSession:if parent session triggered closing of tee, then child session may not be closed yet. In that case free the child session first and only then free child router session and release child session's memory back to system.
tee.c:routeQuery: only route if child session is ready for routing. Log if session is not ready for routing and set tee session inactive
mysql_client.c:gw_client_close:if DCB is cloned one don't close the protocol because they it is shared with the original DCB.
2014-12-23 00:26:57 +02:00
VilhoRaatikka
6b6ac2f95f Partial fix to bug #657, http://bugs.mariadb.com/show_bug.cgi?id=657
dcb.c:dcb_clone: set same close function than in the original DCB so that routing session will become closed when client DCB is closed.
session.h:introduce a new state which indicates that SESSION structure can be freed next, SESSION_STATE_TO_BE_FREED. State is needed to separate the state before and after memory free. Memory is freed in different situation depending on whether the session is parent or child session. Child sessions are freed in their parent.
Also introduce a new member in SESSION struct, ses_is_child, to indicate whether SESSION has a parent session which is responsible for releasing the memory of it.

session.c:session_unlink_dcb:when last session reference is removed set SESSION->state=SESSION_STATE_TO_BE_FREED
session.c:session_free:only free the memory if session is not child session. If it is child, session is left to be freed by the parent (in tee filter's freeSession, for example).

tee.c:newSession:mark branch session to child.
tee.c:freeSession:if child session memory is ready to be freed, free it.

mysql_mon.c:monitorMain:when backend server's status changes so that it is not running anymore or doesn't have any of the states - master, slave, ndb, joined - call for each DCB the callback-function DCB_REASON_NOT_RESPONDING if specified. Earlier callbacks were called if there was any change in the state of the server being monitored.
2014-12-22 16:24:07 +02:00
VilhoRaatikka
726f221113 Added debug log to session closing and related functions 2014-12-19 12:18:25 +02:00