Commit Graph

4425 Commits

Author SHA1 Message Date
ba9da9ae3d Fixed invalid EXTERNCMD allocation
externcmd_allocate now returns either a valid EXTERNCMD or NULL.
2015-11-11 21:26:10 +02:00
2d600868f5 Added argument substitution to monitor scripts 2015-11-11 21:19:07 +02:00
466224b316 Moved common monitor code to externcmd.c
File existence and permission checks are now done in externcmd_can_execute
2015-11-11 21:19:07 +02:00
d56843835c Cleaned up externcmd_allocate and externcmd_free 2015-11-11 21:19:07 +02:00
9ab5326960 Fix to MXS-438: https://mariadb.atlassian.net/browse/MXS-438
Maxinfo now supports the shutdown command which shuts down a service, monitor
or MaxScale itself and the restart command which restarts a stopped monitor
or service.
2015-11-11 18:59:39 +02:00
3ea55e3b50 Fix to MXS-437: https://mariadb.atlassian.net/browse/MXS-437
Maxinfo now allows users to flush logs and change the server status
through the MySQL interface.
2015-11-11 18:57:19 +02:00
30d1fc66b7 getCapabilities no longer takes arguments and returns an int. 2015-11-11 18:14:03 +02:00
264944ff23 Service users are set to NULL after they are freed. 2015-11-11 18:02:01 +02:00
c5c416e7fe Fixed modification of parameters
Monitor parameters were being modified in externcmd_allocate which caused truncation
of the arguments to the commands.
2015-11-11 18:01:09 +02:00
8363673be6 Added number of inserted elements to hashtable
Added tracking of the number of inserted elements to the hashtable.
Also added utility function to get the size of the hashtable.
2015-11-11 17:57:35 +02:00
cd6f7ce046 Fix to MXS-447: https://mariadb.atlassian.net/browse/MXS-447
Monitors are now started after they have been fully configured.
2015-11-11 17:54:41 +02:00
49d4a2019e Clarify and fix logic around router capabilities, with particular reference to crash relating to binlog router. 2015-11-11 15:43:23 +00:00
3346c9c30d Removed '' around slave_uuid
Removed '' around slave_uuid
2015-11-11 15:18:20 +01:00
b6783c24d0 Log: Some gotos removed. 2015-11-11 15:20:25 +02:00
b4e9dcd567 Log: succp renamed to succ. 2015-11-11 15:18:08 +02:00
001d2df96c Log: Consistency of global variables ensured.
The value of global variables that can change copied before being
accessed to ensure that the used value is the same for the duration
of a function call. No locks are needed, because even if the copying
would not be atomic, it doesn't matter since all that matters is that
the used value does not change for the duration.
2015-11-11 15:05:42 +02:00
42cf1c58d6 No need to handle impossible things.
The string given to logmanager_write_log cannot be NULL.
The id given to logmanager_write_log cannot be invalid.
Consequently we need not handle those possibilities.
2015-11-11 14:42:43 +02:00
acb0a523a7 Log: No more argv parsing for log manager.
Earlier, the global setting for the syslog decided whether syslog
was enabled when skygw_logmanager_init was called, but not whether
logging to syslog actually was made.

Now syslog logging is enabled by default and the global setting
decides whether or not syslog logging actually is made. That is,
this opens up the possiblity for making it possible to turn on
and off sysloging at runtime.

Further, although the API led you to believe otherwise, it was
hardwired that LOGFILE_ERROR and LOGFILE_MESSAGE messages were
written to syslog.

The changed removed the need for passing an argv array explicitly.
2015-11-11 13:53:14 +02:00
0b7de96eff Log: Module variables collected into anonymous struct.
Modules variables collected into anonymous struct. Easier to
see whether something has module scope.
2015-11-11 13:51:20 +02:00
24bed47794 Syslog ident must be provided explicitly.
The syslog ident must be provided explicitly when calling
skygw_logmanager_init (and not provided via the argv array).
It can be NULL, in which case it automatically will be the program
name.

The openlog() call is now always made, irrespective of what the
value of the global syslog flag is. That way it will be possible
to turn syslog logging on or off after the fact.
2015-11-11 13:48:57 +02:00
55dbaa49c0 Logging target must be explicitly defined.
Whether the log-file should be written to the filesystem or to
shared memory must now be explicitly defined when calling
skygw_logmanager_init() (instead of passing that via the argc/argv
construct).

Also, the meaning of '-l' when invoking maxscale has been changed.

Earlier -l [file|shm] specified whether the trace and debug logs
should be written to shared memory (while the error and message
logs always were written to the filesystem) and the _default_
was to write them to shared memory.

Now, with only one file, '-l' has still the same meaning, but it
decides whether the one and only logfile should be written to shared
memory, or the filesystem and the _default_ is to write it to the
filesystem.
2015-11-11 13:47:34 +02:00
90a8646ac2 Whitespace and indentation changes.
Also changed line-endings from DOS CRLF to only LF.
In addition, made functions const correct.
2015-11-11 13:43:15 +02:00
14b8dbc4d8 Miniman changes to make testlog work.
testlog.c can never have worked, or then it cannot have been
kept up to date for a very long time.
2015-11-11 13:41:26 +02:00
2183d5d3c5 Fix mistakes in merging. 2015-11-11 11:31:07 +00:00
abea233a2e If log manager not inited messages are written to stdout.
If the log manager has not been inited, then messages are written
to stdout. In practice this can happen if something is directly or
indirectly logged during the startup of maxscale, before
skygw_logmanager_init() has been called. Some refactoring is needed
to allow skygw_logmanager_init() to be called very early at program
startup.
2015-11-11 13:30:12 +02:00
8395bad394 Added slave remote port in log messages
Added slave remote port in log messages
2015-11-11 12:19:58 +01: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
1fc6b00211 Add conditionally compiled mechanism to "show buffers" to give a list of the currently allocated buffers, with a trace for each one of the calls that led to its creation. 2015-11-11 09:03:48 +00:00
72072778de Consume the given buffer in all cases, as caller has to assume that this will take place. 2015-11-11 08:39:47 +00:00
49866b5959 ss_info_dassert now enabled also in release mode. 2015-11-10 21:19:50 +02:00
23b3c9d2b2 Log message removed
Log message removed
2015-11-09 11:53:27 +01:00
e7dbc605af Spinlock added for slave state set
Spinlock added for slave state set
2015-11-09 09:59:36 +01:00
43c7ccdd08 Whitespace and indentation changes.
Whitespace and indentation changes of log manager test programs.
2015-11-09 10:40:13 +02:00
5e71ff093f Log message updates
Log message updates
2015-11-06 18:28:41 +01:00
00c506b029 Fix for rotate and catchup with transaction_safety = 1
Fix for rotate and catchup with transaction_safety = 1
2015-11-06 18:14:52 +01:00
450078fa92 Interface of skygw_logmanager_init(int argc, char* argv[]) changed.
The previous interface of skygw_logmanager_init was conceptually
broken. With -o you could specify that logging should be done to
stdout. However, even if you did that, the log manager still checked
that the logging directory could be accessed. Unless it had been
specified using -j <path> the default was /var/log/maxscale.

That is, unless the program calling skygw_logmanager_init was invoked
by a user that had write access to /var/log/maxscale, there would be
a complaint even if nothing was ever written to that directory.
In practice this meant that even if -o was used you had to provide
a -j with a path that surely is writeable (e.g. "/tmp").

This has now been changed so that you explicitly must provide the
log directory and the flags -j and -o are removed.

  bool skygw_logmanager_init(const char* logdir, int argc, char* argv[]);

If /logdir/ is provided then logged messages are written to a log file
in that directory. If /logdir/ is NULL then messages are logged to stdout
and no checks for access to any directory is not made.
2015-11-06 14:20:05 +02:00
b19a4b9f4a Commands for enabling the log priority added to maxadmin.
Enabling log files is accepted but deprecated.
2015-11-06 10:06:54 +02:00
80344babd7 Log manager additions.
Changes related to the replacement of the notion of logfiles
with the notion of syslog priorities.
2015-11-06 10:06:54 +02:00
33294e4c95 Whitespace and indentation changes.
- Tabs replaced with spaces.
- Indentation level 4 spaces.
- Allman braces (except for part of commands)
- Space after ,
- Spaces around binary operators.

No other changes.
2015-11-06 10:06:35 +02:00
548d03005b Added test for maxscale_pcre2.c 2015-11-05 10:19:24 +02:00
603e737769 Cleaned up testbuffer.c and added a test for gwbuf_clone_all 2015-11-05 09:36:09 +02:00
e8c1c82265 Removed failed fstat message
Removed failed fstat message
2015-11-04 17:54:41 +01:00
c37b33c60e Merge branch '1.2.1-binlog_router_trx' into develop 2015-11-04 16:42:30 +01:00
685e674009 Log message update
Log message update
2015-11-04 16:41:27 +01:00
d51ac7ab7d Disconnect slave when pos is UNSAFE
Disconnect slave when pos is UNSAFE instead of sending an error that
stops the replication
2015-11-04 16:24:46 +01: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
0accf869de Fix to MXS-365: https://mariadb.atlassian.net/browse/MXS-365 Added tracking of LOAD DATA LOCAL INFILE
While a LOAD DATA LOCAL INFILE query is being executed, all queries will be sent to the master
and they will not be processed as normal packets.
2015-11-04 12:47:55 +02:00
126b4c1d79 Whitespace-fixes of maxkeys and maxpasswd.
Whitespace and indentation fixes of maxkeys.c and maxpasswd.c.
No other changes.
2015-11-04 12:30:06 +02:00
e9ff89629b More obsolete functionality removed.
The log manager possibility for explicitly specifying the names
of the log files has never been used. In the name of simplicity
that functionality is removed.
2015-11-04 11:00:38 +02:00
865162dc54 Removed getopt options. 2015-11-04 10:29:42 +02:00