Commit Graph

197 Commits

Author SHA1 Message Date
5515c71988 Reapply MXS-504 changes subsequent to optimisation changes. Merge SSL processing into non-SSL processing so far as possible, correct usage of OpenSSL, simplify where possible. 2016-01-13 10:08:37 +00:00
fb5fdb17db Switch bitmask_clear to be locking and offer bitmask_clear_without_spinlock for non-locking version, in response to review comments. Revert poll.c to use bitmask_clear (with locking) and amend dcb.c to use the non-locking version and to take advantage of the return of an indication of whether the whole bitmask is then clearn. 2016-01-08 13:47:34 +00:00
aa79e61aac Various optimisations of bitmask processing. External change is that bitmask_clear() does not apply a spinlock, so must be called with exclusive access to the bitmask. This affects the call in shutdown processing in poll management. The call from DCB processing is safe because zombie processing has exclusive access to DCBs. 2016-01-08 13:47:34 +00:00
e3e8a59555 Allow hangup event also when EPOLLRDHUP is not available.
When generating a fake hangup event, EPOLLRDHUP is used if available,
otherwise EPOLLHUP. process_pollq(int) does the same thing both in the
case of EPOLLRDHUP and EPOLLHUP, so it seems this should work.
2015-12-08 10:14:10 +02:00
6c401b9085 Reindent server/core/poll.c 2015-11-30 18:57:19 +02:00
916ee5ff2a Rename some log concepts
The mxs prefix is now uniformly used with all log components.
2015-11-26 17:34:53 +02:00
038877b8db Fixed minor format errors and resource leaks
Some format strings used integer values for unsigned integers.
Memory and file descriptors leaked in some error conditions.
2015-11-25 12:43:49 +02:00
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
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
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
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
2dcdab29b6 LOGIF_MAYBE macros cleaned away.
Used in few places and only obscured what was going on.
2015-11-14 22:28:17 +02:00
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
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
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
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
88716c35fb Various changes to block loopholes in different cases and tidy up. 2015-09-21 09:23:22 +01:00
cfeaf7d6e9 Merge remote-tracking branch 'origin/develop' into MXS-329
Conflicts:
	server/core/session.c
2015-09-10 13:07:27 +01:00
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
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
5338318900 Improve error message when DCB has no session pointer in poll loop. 2015-08-28 17:25:41 +01:00
70d82fd45e Fixed compilation problems. 2015-08-26 18:33:46 +03:00
72b301785b Complete implementation of error logging when no session pointer in DCB. 2015-08-25 12:25:36 +01:00
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
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
12922225b8 Remove redundant DCB state DCB_STATE_FREED, remove obsolete assertion from poll.c, tidy up. 2015-08-25 09:11:44 +01:00
37ac158791 Changes to try to eliminate setting dcb->session to NULL with risk of crashing system. 2015-08-24 12:12:43 +01:00
5e2e2585ad Fix mistakes. 2015-08-23 16:43:07 +01:00
1baf693b02 First changes for lazy session creation. 2015-08-23 16:39:08 +01:00
087c2fca46 Block out new test for the time being. 2015-08-23 10:09:42 +01:00
6b2d90fc50 Add check so DCB can't be added to poll list without a linked session; small safety improvement in session; tidying. 2015-08-23 09:34:26 +01:00
53c3cc4b41 Fix mistake; tidy format. 2015-08-22 19:14:40 +01:00
139d4829a9 Further refinement of poll_remove_dcb function to ensure proper delayed release of a DCB that may be in the poll list and should only be destroyed after all threads have completed any operations on it; add comments describing implementation limitations in the bitmask processing. 2015-08-20 06:58:05 +01:00
38f78c7239 Fix possible threading problem. 2015-08-19 17:23:49 +01:00
98ab399e6e Changed sprintf calls to snprintf calls and fixed compiler warnings. 2015-08-18 10:50:48 +03:00
260f829046 Add blank line to start of Document Contents (link otherwise not rendered correctly by web site); move upgrade documents into their own directory; modify poll.c to fix problem relating to cloned DCBs. 2015-07-15 08:35:50 +01:00
78eab19c62 Fixed compiler warnings. 2015-07-14 17:13:09 +03:00
3992f262ca Fixed Coverity defects 2015-07-14 16:17:50 +03:00
3ddbe47f8b Minor tidy up, including removing obsolete MUTEX_BLOCK. 2015-07-13 14:32:54 +01:00
ef6728344e Fixed failures to close cloned DCBs. 2015-07-13 13:11:43 +03:00
77db46359e Change poll control failures to use SIGABRT rather than assert(false). 2015-07-08 08:52:19 +01:00
4c8aa02c31 Finalise comments; change abort from assert(false) to raise(SIGABRT). 2015-07-07 16:57:13 +01:00
be789855ee Add lines to revision history. 2015-07-07 16:57:12 +01:00
fffd8fb73a Unify DCB close processing to single function dcb_close. Remove dcb_add_to_zombieslist (incorporating logic into dcb_close). Alter logic so that DCB that is just allocated will still go to zombie list if dcb->fd is not closed. 2015-07-07 16:57:12 +01:00
77d374cd52 Fix mistake. 2015-07-07 16:57:12 +01:00
18a95eeb71 Simplify adding and removing DCBs from polling, improve error handling. Remove dcb_set_state functions as not adding value. 2015-07-07 16:57:12 +01:00
a72f462e2d Fixes for MXS-196 and other related problems. 2015-07-07 16:57:12 +01:00
e14b29baf9 Fix to MXS-212: https://mariadb.atlassian.net/browse/MXS-212
The listener DCB is now properly closed instead of just being removed from the poll set.
2015-06-21 12:51:54 +03:00
04b969efaa Fixed poll.c include with old header name. 2015-03-12 07:39:39 +02:00
63d83cd85d Monitor API 2.0.0 implemented. 2015-03-11 15:18:55 +02:00