8ce9cd1cbdFix to wrong version string being used in the macros.cmake .
Markus Makela
2015-01-09 05:10:05 +02:00
f90b8bdc88Fixed hint filter tests failing because the testing configuration was not using all the available slaves for testing resulting in unexpected routing decisions.
Markus Makela
2015-01-08 21:13:33 +02:00
7987365bd4Fix to tee filter tests failing due to the default user not being found in the etc/passwd file.
Markus Makela
2015-01-08 20:21:56 +02:00
c8fbe71527change version number to 1.0.4-stable
Timofey Turenko
2015-01-08 17:51:08 +02:00
d5f47c250fAdded the missing LICENSE, COPYRIGHT, README and SETUP files.
Markus Makela
2015-01-08 17:47:08 +02:00
6db34b0321Update to remove incorrect documentation and update release notes
Mark Riddoch
2015-01-08 15:40:55 +00:00
2ee6906ca3Update to remove incorrect documentation and update release notes
Mark Riddoch
2015-01-08 15:40:55 +00:00
632190f9aaMerge branch 'release-1.0GA' into MAX-324
Markus Makela
2015-01-08 14:11:19 +02:00
aa60e02697Fix to session variables not being written to all backends when USE DATABASE is used.
Markus Makela
2015-01-08 14:08:49 +02:00
2a02b2debaFixed TestUsers failing due to only adding a single user.
Markus Makela
2015-01-08 13:48:29 +02:00
094dfbd4f7Fixed tests not having environment variables set.
Markus Makela
2015-01-08 13:18:14 +02:00
af415f58c3Add support for select @@max_allowed_packet
Mark Riddoch
2015-01-07 17:38:41 +00:00
613ed8bb61Cleanup some log messages
Mark Riddoch
2015-01-07 17:37:32 +00:00
c4006d43c2Fix to Coverity defect 85262
Markus Makela
2015-01-06 05:28:58 +02:00
6e17bf5ec1Updated dbshard with the new server reference changes.
Markus Makela
2015-01-06 05:01:37 +02:00
fed828eb29Merge branch 'release-1.0GA' into MAX-324
Markus Makela
2015-01-06 04:45:30 +02:00
f3c62f4846set version to 1.0.3
Timofey Turenko
2015-01-06 01:22:23 +02:00
cd99849581Fix#2 to bug 680: http://bugs.mariadb.com/show_bug.cgi?id=680" When no users are loaded from backends, instead of counting it as a failure the service is started and the next time a client connects an attempt to load the users from the backends is made.
Markus Makela
2015-01-05 17:38:45 +02:00
ea0d2e562dUpdates to PDF copies of the documentation
Mark Riddoch
2015-01-05 14:32:43 +00:00
1926336576Updates to PDF copies of the documentation
Mark Riddoch
2015-01-05 14:32:43 +00:00
9717190b4aAdded calls to skygw_log_sync_all in the hint, server and user tests before each assertion that might fail.
Markus Makela
2015-01-05 15:14:26 +02:00
17307fcffeMerge branch 'testing_header' into release-1.0GA
Markus Makela
2015-01-05 15:12:55 +02:00
2d8375bb12Fix to bug 579: http://bugs.mariadb.com/show_bug.cgi?id=579 Added a header which contains the locations for the testing directory and its subfolders which enables the test to write into the right logfiles. Also added a calls to skygw_log_sync_all before assertions forcing all logs to be written to disk at the time the test might fail.
Markus Makela
2015-01-05 15:06:38 +02:00
b99467cd63Merge branch 'release-1.0GA' into testing_header
Markus Makela
2015-01-05 14:46:34 +02:00
6adccb3c17Fix to bug 680: http://bugs.mariadb.com/show_bug.cgi?id=680 service.h:Added the 'serviceStartFailed' function which tries to start services with successfully started routers but no successfully started listeners. mysql_mon.c:Added a call to ServiceStartFailed when servers come available.
Markus Makela
2015-01-05 13:28:27 +02:00
e27b51392aChanged SIZE_MAX references to values calculated at runtime.
Markus Makela
2015-01-05 11:38:16 +02:00
8729413655Fixed build issues due to missing headers.
Markus Makela
2015-01-05 11:31:28 +02:00
fd011fc128Fixed build issues due to missing headers.
Markus Makela
2015-01-05 11:31:28 +02:00
3bf595673dAdded the missing skygw_log_sync_all function to the log_manager.h header and created a header for testing which contains the location of the testing directory.
Markus Makela
2015-01-05 06:48:32 +02:00
ba009e5fd3Fixes 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.
Markus Makela
2015-01-05 06:05:56 +02:00
2d3491e123Additional fix to bug #676 readwritesplit.c:route_session_write: added check that at least one backend is being used.
VilhoRaatikka
2015-01-03 01:47:11 +02:00
9be2212d96Fix to bug #676, http://bugs.mariadb.com/show_bug.cgi?id=676 readwritesplit.c:route_session_write failed if the last backend on all backends list was not in use. THe situation where not all backends are used by routing session is normal especially if max_slave_connections is not set to 100%. Thus session commands may have failed if user was bit unlucky. Changed the logic so that the function fails (and session is closed) if routing fails to any such backend which is in use in the session.
VilhoRaatikka
2015-01-03 01:21:30 +02:00
b3d79f7273Merge branch 'release-1.0GA' into bug_679_fix
Markus Makela
2015-01-02 20:57:28 +02:00
95cd0b93cbFix to bug 679: http://bugs.mariadb.com/show_bug.cgi?id=679 Added server references to services instead of using a raw pointers to server instances. Changed all references to service->database to service->dbref.
Markus Makela
2015-01-02 20:28:26 +02:00
6228be4284Fix to bug #678, http://bugs.skysql.com/show_bug.cgi?id=678 tee.c:routeQuery cloned partial MySQL packets to be routed to child router. Problems were due to the use of gwbuf_clone and modutil_MySQL_query which clone/examine only the first buffer from the buffer list which composes GWBUF. modutil.c: Added function modutil_MySQL_query_len which calculates MySQL packet length and the missing bytecount
VilhoRaatikka
2015-01-02 18:32:57 +02:00
ef19b9e729Fixed concurrency issues in tee. tee.c: added a spinlock to the session which is used in clientReply
Markus Makela
2015-01-02 16:21:21 +02:00
a745383956Added 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.
VilhoRaatikka
2015-01-02 09:53:24 +02:00
4e655eda0aFixes to coverity defects 85250 and 85251.
Markus Makela
2015-01-02 07:21:13 +02:00
89a394ab09Fixed orphaned sessions being stuck in the SESSION_STATE_STOPPING state.
Markus Makela
2015-01-01 19:53:26 +02:00
9061967c31Added simple query success detection to tee filter.
Markus Makela
2015-01-01 14:10:59 +02:00
ce58157901Added more debugging output. tee.c: Added details about the freeing of orphaned sessions. session.: Added missing cases of session state into the session_state function in debug builds.
Markus Makela
2015-01-01 13:03:03 +02:00
162391c46cFixed orphaned branch sessions leaking memory. tee.c: Created a static, module-wide list of orphaned branch sessions which holds the branch sessions that can't be freed at the time the parent session is being freed. This list is processed every time a a tee filter session is freeing its memory.
Markus Makela
2015-01-01 04:45:33 +02:00
2eee4ae4fdFix to Bug #657, http://bugs.skysql.com/show_bug.cgi?id=657 filter.c:filter_free:if filter parameter is NULL, return. tee.c:freeSession: if my_session->dummy_filterdef is NULL, don't try to release the memory
VilhoRaatikka
2015-01-01 01:20:21 +02:00
f4f537a3e2Fix 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
VilhoRaatikka
2014-12-31 21:06:28 +02:00
51ebfb9862Fix to Coverity issue 85210.
VilhoRaatikka
2014-12-31 16:29:07 +02:00
6710d5d25eFixed a call to free with a pointer to a stack allocated struct.
Markus Makela
2014-12-31 16:26:42 +02:00
316093f912Fixed memory leaks and cleaned up dead code.
Markus Makela
2014-12-31 15:38:15 +02:00
d1bc68c7d0Added new member to TEE_SESSION structure: TEE_SESSION->tee_replybuf where reply message is stored until replied to client.
VilhoRaatikka
2014-12-31 14:42:14 +02:00
5ab329f888Changed the way replies are handled. Tee filter now receives two client replies, one from the parent service and one from the child service. These replies are checked before cloning any more queries into the child service. If the reply isn't sent fast enough, the child session is closed.
Markus Makela
2014-12-31 12:58:37 +02:00
d3e15afb2fMoved the branch session reply state inspection to routeQuery instead of clientReply.
Markus Makela
2014-12-31 07:19:12 +02:00
073db0f1e2Added checks that the query was cloned in clientReply before waiting for a reply.
Markus Makela
2014-12-30 23:05:13 +02:00
9a77509e6aAdded logging to trace log about waiting times and branch session closing.
Markus Makela
2014-12-30 18:30:09 +02:00
e6607dca40tee.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
Markus Makela
2014-12-30 17:40:47 +02:00
77bd279a01Fix to prevent double free of dcb->data/session->data. If authentication fails, call free(dcb->data) only when DCB in question is *not* cloned.
VilhoRaatikka
2014-12-30 12:28:36 +02:00
b0c152b55cFixed debug assertion and protected read of client DCB's state and consistency.
VilhoRaatikka
2014-12-30 10:55:53 +02:00
df0b04a5c0Fix: accessed released memory in mysql_client.c where dcb->data was released in gw_mysql_do_authentication and accessed afterwards.
VilhoRaatikka
2014-12-30 10:36:06 +02:00
ecdb6f2d4aAdded a test for tee filter recursion.
Markus Makela
2014-12-29 20:14:08 +02:00
69237b4f4fAdded tests for tee filter recursion.
Markus Makela
2014-12-29 14:58:08 +02:00
beacd524daFix to bug #662, http://bugs.mariadb.com/show_bug.cgi?id=662 dbusers.c: Added function for setting read, write and connection timeout values. Set default timeouts for getUsers. Defaults are listed in service.c gateway.c:shutdown_server is called whenever MaxScale is to be shut down. Added call for service_shutdown to shutdown_server. service.c:service_alloc: replaced malloc with calloc and removed unnecessary zero/NULL initialization statements as a consequence. serviceStart: Exit serviceStartPort loop if shutdown flag is set for the service. serviceStartAll: Exit serviceStart loop if shutdown flag is set for the service. service.c: Added service_shutdown which sets shutdown flag for each service found in allServices list. service.h: Added prototype for service_shutdown
VilhoRaatikka
2014-12-29 13:45:24 +02:00
fcca284db3Added complex recursion detection to tee filter
Markus Makela
2014-12-24 06:22:49 +02:00
a1d7ccac2fCommented out a debug assert in dcb.c:917
Markus Makela
2014-12-23 17:40:22 +02:00
ff5fe23ce6dcb.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.
VilhoRaatikka
2014-12-23 16:10:27 +02:00
f0d8ed0cf2Fix 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.
VilhoRaatikka
2014-12-23 00:26:57 +02:00
6b6ac2f95fPartial 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.
VilhoRaatikka
2014-12-22 16:24:07 +02:00