Commit Graph

91 Commits

Author SHA1 Message Date
3e18e091c1 Fixed unreported bug in log_manager where a terminating character was added in the middle of log message. 2014-11-27 16:53:50 +02:00
155e795830 Fix to #622, http://bugs.skysql.com/show_bug.cgi?id=622
When MaxScale starts it opens log file of each type and if there exist log files of same types in the same directory, it will try to reuse the file with largest sequence number in it. If there are no existing files, a file name with sequence number 1 will be created. If the file with largest sequence number is not writable, a new log file with larger sequence number will be created.
2014-11-21 13:44:12 +02:00
ed461d58e2 Moved messages to message log
Moved messages to message log and others printed only with DEBUG mode
compile setting
2014-11-19 11:36:44 +01:00
580f9730f6 Fix to #621, http://bugs.skysql.com/show_bug.cgi?id=621 2014-11-19 12:14:24 +02:00
fd11e6a7f5 Session-specific logging. Added functions
void session_enable_log(SESSION* ses, logfile_id_t id)
and
void session_disable_log(SESSION* ses, logfile_id_t id)

Which switch specific log type on/off if the log type in question is not generally enabled.

Each thread carries a thread-specific struct log_info_t which includes members for current session id and bitfield for enabled log types for the current session. That information is checked before actual log write functions are called.

Each file where session-specific logging is used, must include the following exports:

/** Defined in log_manager.cc */
extern int            lm_enabled_logfiles_bitmask;
extern size_t         log_ses_count[];
extern __thread log_info_t tls_log_info;
2014-11-19 00:08:59 +02:00
a30fc0c787 MAX-328, Add session identifier to trace log entries. Session id is given to session in session_alloc and stored to thread's local storage variable when thread picks a new event from epoll_wait. 2014-11-17 23:27:14 +02:00
df9acee69a Fix to bug# 616: Added checks that only one block buffer (the first one) is being moved at any one time. 2014-11-17 12:44:25 +02:00
4e405ebb8f Added logging to log rotation and to filter session setup. 2014-11-12 16:41:28 +02:00
f4576dbabc Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop
Conflicts:
	log_manager/log_manager.cc
2014-11-12 14:59:36 +02:00
780733f870 MAX-325, Log rotation functionality. When skygw_log_rotate is called, corresponding logfile's rotate flag (lf_rotateflag) is set and log writer thread is woken up. Writer opens a new log file and closes the old one. 2014-11-12 14:48:17 +02:00
624c347984 Fixed compilation errors due to declaring variables after a goto command. 2014-11-12 10:24:21 +02:00
8af97016bb Dummy for skygw_log_rotate. 2014-11-11 18:33:17 +02:00
20ddcfb8c4 Fix to bug #613, http://bugs.skysql.com/show_bug.cgi?id=613
Simple fix: disable logging to files where logging fails.
2014-11-10 13:50:24 +02:00
4f39828fa1 Fixes to Coveriry issues 72757 & 73266 2014-11-07 10:07:22 +02:00
00fded016b Fixes to Coverity tasks : 73267, 72686, 72672
Cleaned up warnings, and added checks to malloc return values and error log writes in case of failures.
2014-10-31 15:25:59 +02:00
5b80cf3032 If opening any of the log files fail, MaxScale doesn't start before the cause has been removed. Added informative error message which is to be printed to standard error output. 2014-10-30 21:19:26 +02:00
7048270062 Coverity : 72678, 72687, 72689
Fixed memory leaks and use of freed memory
2014-10-30 18:19:41 +02:00
9d466b5770 Coverity : 72737, 72751, 72754
Fixed uses of uninitialized values.
2014-10-30 17:51:29 +02:00
32575e3fc0 Merge branch 'develop' into shm_log_fix
Conflicts:
	log_manager/log_manager.cc
2014-10-15 21:26:03 +03:00
726ab87f4b Fix to #575, http://bugs.mariadb.com/show_bug.cgi?id=575
log_manager.cc:
	Log manager handles cases where there are mismatch in user privileges.
	Mark log files enabled in the global lm_enabled_logfiles_bitmask after initialization so that it reflects reality in error cases. In general, take into account the possibility that any phase in initialization may fail and read return values.
	Replaced file_exists_and_is_writable to check_file_and_path which has a slightly different logic and which detects if file open fails for a few different reasons.
	Improved logging (in stderr) in general in error cases.

gateway.c: Also check home directory accessibility in case when it is provided as a command-line argument. Added function check_dir_access to provide that function. Read return value of skysql_logmanager_init and exit (nicely) if it failed.

skygw_utils.cc: initialize mlist with version number 2, which indicates that object is initialized (different than zero) and that there are no active updates on the object (version%2==0).
2014-10-14 13:22:16 +03:00
5c968c9ac8 Merge branch 'develop' into shm_log_fix 2014-10-10 07:02:22 +03:00
29e53e150a Fix to bug # 565, http://bugs.mariadb.com/show_bug.cgi?id=565
Client flags are now copied to each backend and used in their connections.

log_manager.cc: fixed string allocation where one byte was missing.
mysql_client.c: fixed string allocation where one byte was missing.
2014-10-08 22:27:28 +03:00
194ebcb054 Fix to bug 567(http://bugs.mariadb.com/show_bug.cgi?id=567)
log_manager.cc: if the file exists, is a symbolic link and is not writable, the log manager does not fail but unlinks it and creates a new one.
2014-10-06 15:13:18 +03:00
856448500e Merge branch 'develop' of https://github.com/mariadb-corporation/MaxScale into develop 2014-10-01 14:38:15 +03:00
b0683d9b4d Updated the licensing year from 2013 to 2013-2014 2014-10-01 14:37:12 +03:00
a53e80e144 Added back removal of double newline character from log records. 2014-10-01 14:30:59 +03:00
52c0d0c768 Merge remote-tracking branch 'origin/develop' into header_rename 2014-10-01 05:24:02 +03:00
f4e591e382 Changed 'SkySQL Gateway' to 'MariaDB Corporation MaxScale' 2014-09-30 13:15:03 +03:00
c344231f80 Renamed all occurences of SkySQL to MariaDB Corporation 2014-09-30 13:02:10 +03:00
3b9175d957 Clean up 2014-09-29 13:52:14 +03:00
686d28a1f0 Fix to bug #506, http://bugs.skysql.com/show_bug.cgi?id=506
If debug and/or trace log is stored to shared memory, the absolute path to file is now /dev/shm/<pid>/skygw_[trace1|debug1].log
2014-09-29 13:21:26 +03:00
a16f900d6d Merge branch 'hholzgra-hartmut-compile-warnings' into release-1.0beta-refresh
Conflicts:
	server/include/dcb.h

Resolved
2014-09-19 17:37:39 +01:00
68f8e32f58 Added physical log paths to message which is printed on the start screen. Refers to bug #506, http://bugs.skysql.com/show_bug.cgi?id=506 2014-09-15 13:38:47 +03:00
aceae1c32b Removed the debug tags from log entries in standard debug builds and added a special switch to the tests 2014-09-10 13:00:28 +03:00
4028c50fea added state based block buffers to log manager 2014-09-10 12:09:00 +03:00
aa83b6b21a Changed the way blockbuffers are used after they fill up.
The blockbuffers that get full are now moved to the end of the list of blocks. This prevents messages being written to the disk in the wrong order.
2014-09-09 10:48:25 +03:00
2097b54c35 More debugging info 2014-09-08 14:49:52 +03:00
d7439b67c5 Added log order scripts and more debug output 2014-09-08 10:40:23 +03:00
bfac227f4d tests for log manager write order 2014-09-05 17:24:26 +03:00
25c5d1af25 fixed some warnings about const -> non-const conversions 2014-08-26 18:25:28 +02:00
d3a79ce7c4 Partial fix to #463, http://bugs.skysql.com/show_bug.cgi?id=463
log_manager.cc: fixed block buffer overflow. Queries are logged to trace log and long queries exceed the bufsize in length. Those were written beyond allocated memory areas.
mysql_client_server_protocol.h: added mysql_protocol_state_t to indicate whether MySQL protocol object is allocated, usable or freed. Freed means that memory allocations made by the protocol are freed. That is, command history etc.
mysql_backend.c: gw_backend_hangup and gw_error_backend_event used to call error handling function although session was already closing. Added check for session state.
mysql_client.c: route_by_statement lost some packets in case where query was sent in multiple packets.
mysql_common.c: gw_MySQL_get_next_packet failed in packet handling with route_by_statement. When multi-packet query was merged into one, packet type wasn't copied.
	protocol_archive_srv_command and mysql_protocol_done didn't have proper locking in place which lead to occasional crashes.
2014-08-14 13:05:05 +03:00
b5e9428ff7 log_manager.cc fixed memory leak, block buffer mutex names weren't freed.
query_classifier.cc use of uninitialized value in skygw_stmt_causes_implicit_commit
config.c crashed if module load failed, use of unitialized value
load_utils.c pretty-printed error
service.c use of uninitialized value in service_add_qualified_param
modules.h function prototype
readwritesplit.c memory leaks
2014-04-29 14:50:09 +03:00
7cc693b572 Added stricter compile flags for debug build. Temporary solution since they will be added to all builds next.
Fixed strin formatting bugs in log_manager.cc .
2014-03-27 17:51:23 +02:00
e57944ef44 Bug #399, http://bugs.skysql.com/show_bug.cgi?id=399
Corrected the length variable including length of timestampt string which doesn't include terminating null.
2014-02-11 14:55:16 +02:00
d700754baa log_manager.cc
Bug #372, http://bugs.skysql.com/show_bug.cgi?id=372
	Do not exceed the buffer capacity in log writing. Now longer strings are cut to fit to the buffer.
2013-12-13 15:21:48 +02:00
f50de7a084 build_gateway.inc
Removed MARIADB_SRC_PATH
	Added MYSQL_ROOT - root directory where MariaDB headers are installed
	Added MYSQL_HEADERS - -I notation for three header directories
	Added EMBEDDED_LIB - for embedded library directory
	Added ERRMSG - for errmsg.sys file

log_manager.cc
	Little fixes

log_manager/makefile
	Updated header include directive

makefile.inc
	Removed DEBUGGER and BACKGR as unnecessary
	Added LIB for embedded library file name

query_classifier/makefile
	Updated header include directives and embedded library directory

query_classifier/query_classifier.cc
	clean up

server/core/Makefile
	Updated header include directives and embedded library directory
	Added libaio and install of errmsg.sys

server/core/dcb.c
	clean up

server/core/gateway.c
	Added --language and --skip-innodb to mysql_library_init command-line arguments list
	clean up

server/core/load_utils.c
	clean up

server/modules/monitor/Makefile
server/modules/routing/readwritesplit/Makefile
	Updated header include directives and embedded library directory

utils/skygw_debug.h
	http://bugs.skysql.com/show_bug.cgi?id=369

utils/skygw_types.h
utils/skygw_utils.cc
	clean up
2013-12-06 00:12:41 +02:00
258bcb27da log_manager.cc
Added global variable lm_enabled_logfiles_bitmask which holds a bit for each enbaled logfile. It is updated when situation changes. 

gateway.c
	Changed gateway.c:main so that command-line argument -f specifies either the name of config file in $MAXSCALE_HOME/etc or exact location and name of it. Updated README correspondingly.
	Added eternal variable lm_enabled_logfiles_bitmask to be used for quick check before calling logging library functions.
2013-12-04 09:56:48 +02:00
41298a09df Bugzilla entry # 363:
skygw_thread_t and simple_mutex_t make own copy of name argrument. Changed init calls to both accordingly.
2013-11-27 10:51:45 +02:00
4057ae0b0f log_manager.cc
renamed file_exists to file_exists_and_is_writable, added missing file open flags.

gateway.c	
	Removed command-line parameter '-m' because setting LD_LIBRARY_PATH after the program has started has no effect.
	Corrected some comments.
2013-11-26 16:52:48 +02:00
bc97b7f5ec log_manager.cc
external optind variable must be reset before using it because getopt may have been called earlier in the same process and without resetting argument parsing fails.

dcb.c
	check dcb state before attempting to write to dcb in dcb_write

gateway.c
	daemon_mode moved to global so that it can be taken into account when deciding where to print messages.
	added get_config_filename by using home directory name given as a parameter. Returns absolute paths to config file and to home directory regardless of home directory argument was relative of absolute.
	In main, arguments are parsed by using getopt.
	Changed argument '-c' to specify home directory because MaxScale.cnf is always in <home>/etc/ directory.
	Added argument '-m' to specify modules directory. Both arguments override any other settings.

skygw_types.h
	Added PATH_MAX
2013-11-26 12:53:46 +02:00