* ignore typical backup files created by common editors
* move general ignore rules like "*.o" or "depend.mk" to top level gitignore
* ignore executables and test directories in target dir gitignore
as these are local and there's no general catch-all pattern for them
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.
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
All tests are run by executing 'make testall' in root directory. As a result all directories which contain tests will be entered and tests executed.
After tests, each directory have a test log including the last run's logs only.
Created a global test log, which is specified in test.inc. Test logs from subdirectories are concatenated to this file.
Every test/makefile have the following targets:
cleantests - clean local and subdirectories' tests
buildtests - build all local and subdirectories' tests
runtests - run all local tests
testall - clean, build and run local and subdirectories' tests
Tests for directory random_dir are always in its subdirectory, in this case in random_dir/test . If random_dir has subdirectories with tests, random_dir/child_dir, for example, tests of child_dir can be started from random_dir/test/makefile where make -C child_dir/test <test target> is called.
See MAXSCALE_HOME/test/README for further information.
Added macros which allow for testing locally if log is enabled or not.
server/Makefile
Added directory creation command to Makefile. This fixes problem where errmsg.sys was copied to MaxScale/mysql instead of MaxScale/mysql/errmsg.sys
dcb.b
Added external variable which carries the information of enabled logs from log_manager.cc
gateway.c
Tuned logging.
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
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.
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.
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
Commented why spread-down logging is disabled.
In MaxScale start, log paths are printed in their complete form to make it easier to copy-paste the names.
gateway.c
Replaced print_signal_set_error with more general-purpose print_log_n_stderr which prints non-formatted messages to error log and to stderr to the point MaxScale switches to run in daemon process. After that only error log is printed.
skyge_utils.cc
polish
Declared program_invocation_name, and program_invocation_short_name. They are used as identifier strings in syslog logging in cases where log_manager is not initialized explicitly and/or the caller hasn't specified program name as one of the arguments in arguments array.
Fixed memory corruption. Length of sequence number of file name was calculated to as one too short and one byte was written to unallocated memory.
Freed also the linkpath in cases where at least one of the log files is written to shm and a symlink is added to log directory.
mysql_client.c
Added debug check for protocol pointer because of memory issues in mysql_client.c