336 Commits

Author SHA1 Message Date
Johan Wikman
2afe60dd0e Reindent server/core/dcb.c 2015-11-30 12:42:13 +02:00
Johan Wikman
916ee5ff2a Rename some log concepts
The mxs prefix is now uniformly used with all log components.
2015-11-26 17:34:53 +02:00
Johan Wikman
a8535f42af Remove all traces of logfile_t
The earlier log file based approach for enabling and disabling
messages has now been completely replaced with the syslog priority
based approach.

Similarly as with log files before it is now possible to enable
and disable a log priority for a particular session, even though
it apparently has not been used much.

The local test-programs of the logging has got minimal attention
only to make them compile. They should get an overhaul as they did
not work before either.
2015-11-23 19:10:53 +02:00
Johan Wikman
910ddb99fd Reset sessionid upon exit.
Since the sessionid is now unconditionally set, it also needs to
be unconditionally reset.
2015-11-23 18:44:38 +02:00
Johan Wikman
62b0e5fab0 Session info always copied to tls
Maxadmin earlier gave the impression that you could change whether
messages for different log files could be specifically enabled for
a session. In practice that was true only for trace messages as the
session id and the bitmask telling what logfiles are enabled, were
copied to thread local storage only as far as trace messages were
concered.

The code for setting that information in place is quit short and
efficient, so there is really no reason not to do that always.
This also means that it always will be possible to get your hands
on the session object if there is a need for that.
2015-11-23 18:14:46 +02:00
Johan Wikman
6164b7f301 Fixed unsafe use of localtime
Since localtime is not thread-safe it should not be used in multithreaded
contexts. For this reason all calls to localtime were changed to localtime_r
in code where concurrency issues were possible.

Internal tests were left unchanged because they aren't multithreaded.
2015-11-19 17:17:16 +02:00
Johan Wikman
a355e1beef Printf format checking added to logging function.
Printf format checking added to logging function and all
issues that were revealed by that fixed.
2015-11-16 12:40:49 +02:00
Johan Wikman
44df53d846 LOGIF and skygw_write_log removed from server/core/*.c
LOGIF and skygw_write_log removed from server/core/*.c and
replaced with calls to MXS_(ERROR|WARNING|NOTICE|INFO|DEBUG).
This is a mechanism change, no updating of the actual message
has been performed.

Currently this causes a very small performance hit, since the
check whether the priority is enabled or not is performed in
the function that is called and not before the function is called.
Once all LOGIFs and skygw_write_logs have been replaced, the
behaviour will be altered back to what it was.
2015-11-16 09:49:12 +02:00
Johan Wikman
86dcd1cc0f LOGIF_MAYBE macros cleaned away.
Used in few places and only obscured what was going on.
2015-11-14 21:51:27 +02:00
Markus Makela
6b88b6b17f Merge branch 'develop' into MXS-329-develop-20151111 2015-11-13 07:48:59 +02:00
Johan Wikman
05fbdb1b76 Log: skygw_log_flush replaced with mxs_log_flush.
skygw_log_flush replaced with mxs_log_flush and skygw_log_sync_all
with mxs_log_flush_sync.
2015-11-12 18:28:34 +02:00
counterpoint
dee20fe077 Merge remote-tracking branch 'origin/develop' into MXS-329-develop-20151111
# Conflicts:
#	server/core/CMakeLists.txt
#	server/core/buffer.c
#	server/core/service.c
#	server/modules/filter/tee.c
#	server/modules/monitor/mysql_mon.c
#	server/modules/routing/binlog/blr.c
#	server/modules/routing/binlog/blr_slave.c
#	server/modules/routing/debugcmd.c
#	server/modules/routing/readwritesplit/readwritesplit.c
#	utils/skygw_utils.cc

- resolved.
2015-11-11 11:08:02 +00:00
Johan Wikman
834a88aeda Log variables moved to log_manager.h
The log manager variables lm_enabled_log_files_bitmask, log_ses_count
and tls_log_info that earlier were declared separately in every
c-file are now declared in the log_manager.h header.
2015-11-04 14:26:53 +02:00
Markus Makela
5507624326 Fixed typo'd sizeof. 2015-10-29 18:19:05 +02:00
Markus Makela
c29858d215 Added a definition for the size of the SSL error message buffer and changed all buffers to use it. 2015-10-29 16:39:38 +02:00
Markus Makela
f819f164b5 Cleaned up dcb_accept_SSL and added missing logging. 2015-10-29 16:39:38 +02:00
counterpoint
482db5e84d User friendly bit mask display for DCB print; monitors to work via inserting hangups instead of callbacks. 2015-10-17 20:00:05 +01:00
counterpoint
57f5dd15bc Resolve problem of lingering backend database processes; alter MySQL monitor to insert fake events when backend server unavailable; fix problem with count of current connections. 2015-10-16 17:55:07 +01:00
counterpoint
d000af33f6 Remove obsolete function. 2015-10-13 16:21:17 +02:00
counterpoint
efc0c7420e Correct misplacement of decrementing current connections counter. 2015-10-13 16:19:24 +02:00
counterpoint
5c985b42ba Fix problem with persistent DCB disposal 2015-10-05 16:36:07 +01:00
counterpoint
d582c5880c Impose locking on dcb_call_foreach DCB callback mechanism. Add counters and maxima for DCBs and zombies to aid diagnosis. 2015-09-29 11:58:31 +01:00
counterpoint
2231d0870c Place checks in callback routines because DCB will not always contain a reference to a router session, and the associated data will be invalid in this case. 2015-09-25 12:17:18 +01:00
Markus Makela
2dfb9e3c11 Merge branch 'develop' into MXS-329 2015-09-24 17:59:36 +03:00
Martin Brampton
89667294b3 Fix exceptional cases in DCB dcb_call_callback and in MySQL backend gw_error_backend_event - close DCB and return. 2015-09-24 07:39:47 +01:00
Johan Wikman
3b19acd1de Write queue emptied in dcb_final_free.
NOTE: Invalid indentation for reduced conflicts with MXS-329.
2015-09-23 15:16:19 +03:00
counterpoint
7aa36b77ea Guarantee router session is present for call to clientReply; properly free callbacks; attempt to set all necessary values for dbusers; do more to ensure buffers freed. 2015-09-21 14:25:12 +01:00
counterpoint
88716c35fb Various changes to block loopholes in different cases and tidy up. 2015-09-21 09:23:22 +01:00
counterpoint
b8af047a25 Remove excessively tight conditions for selecting persistent connections, add more information to debug output when connection is rejected. 2015-09-18 11:03:23 +01:00
Martin Brampton
31c6666278 Ensure DCB for closing session does not become persistent; remove bref_was_not_in_use. 2015-09-17 14:38:56 +01:00
Martin Brampton
357c4bcae5 Add to or take from persistent pool only if server is running; add conditions to DCB close in read-write handleError to check backend reference was in use. 2015-09-17 12:53:59 +01:00
Markus Makela
fe9babe9ec Cleaned up code. 2015-09-16 10:22:29 +03:00
Markus Makela
5d1895561c Moved parts of dcb_read_SSL to separate functions. 2015-09-14 09:54:42 +03:00
Markus Makela
96fdb5eb8d Fixed SSL write failures not being handled properly. 2015-09-10 18:36:59 +03: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
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
42c9532a56 Simplify logic and reverse list to kill, so as to cancel out the reversal in the original zombie list. Probably not significant, but might be helpful. 2015-09-05 00:32:29 +01:00
counterpoint
d3cdaa4346 No need to process zombie victims if queue is empty. 2015-09-04 18:09:43 +01:00
counterpoint
d74990833b Move capture of user name for persistent connections; expand error message in mysql client to give more information. 2015-09-01 09:59:34 +01:00
counterpoint
a711b25fec Improve user name setting in DCB for persistent connections and to fix bug; change name of session_alloc_dummy to session_set_dummy to be more informative. 2015-08-28 18:20:32 +01: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
counterpoint
1f6b544f33 Tidy dcb_free (prefer use of dcb_close) and remove from test code; add good random number generator. 2015-08-26 15:43:21 +01:00
counterpoint
e7c74c39cf Fix bug in persistent connections; add code to check for DCB session pointer in poll loop before invoking processing. 2015-08-25 12:19:02 +01:00
counterpoint
8425deab18 Fixed bugs by moving setting of thread bit mask from polling to DCB closing, fixed other mistakes. 2015-08-25 11:46:25 +01:00
counterpoint
ea09918312 Fix mistakes. 2015-08-25 09:54:56 +01:00
counterpoint
3dd20cb9ec Acquire user for DCB from DCB session sooner, needed for persistent connection handling. 2015-08-25 09:53:01 +01:00
counterpoint
980b56e7fa Fix stupid extra } 2015-08-25 09:33:40 +01:00
counterpoint
d27ffcf06a Fix mistake in debug STRDCBSTATE() 2015-08-25 09:31:54 +01:00
counterpoint
f18f233de2 Try to resolve unexpected compiler errors 2015-08-25 09:23:24 +01:00