Commit Graph

91 Commits

Author SHA1 Message Date
Ian Barwick
5def293ed6 Configuration file: ignore whitespace following the '=' sign 2015-06-04 11:58:34 +09:00
Ian Barwick
ff7b4d3f02 Improve whitespace handling
Ignore blank lines which consist of whitespace. Per issue #71 in
GitHub.

This fix also improves comment handling and will treat lines with
whitespace before the '#' character as whitespace.
2015-06-04 11:44:38 +09:00
Ian Barwick
3e621f43d1 Use 100 as the default priority; 0 or less means node will never be promoted 2015-03-26 10:38:20 +09:00
Ian Barwick
0875b2aafa Change 'ignore_external_config_files' to a command line option
It's only used when cloning a standby and has more in common with
--fast-checkpoint
2015-03-23 15:24:01 +09:00
Ian Barwick
0fbb83262f Rename t_configuration_options member 'pgctl_options' to 'pg_ctl_options'
Change is to make it match the actual configuration item.
2015-03-20 11:02:32 +09:00
Ian Barwick
e21448831d Standardize configuration error messages for 'failover' parameter.
Better to fail with an error than assume a default value if an
unrecognized value is detected.
2015-03-17 08:19:29 +09:00
Ian Barwick
155f5075cb Improve configuration error and warning messages 2015-03-17 08:14:27 +09:00
Ian Barwick
9cfd6680b3 Remove superfluous comment 2015-03-17 08:01:09 +09:00
Ian Barwick
61ce18ebbe Add configuration parameter 'event_notifications' 2015-03-16 17:31:26 +09:00
Ian Barwick
922dfd88e5 Add configuration option 'event_notification_command'
Command to be executed each time an event is logged.

Following formatting sequences will be interpolated:

      %e - event type
      %d - description
      %s - success (1 or 0)
      %t - timestamp
2015-03-16 13:41:13 +09:00
Ian Barwick
2929ed9be0 Make parameters 'conninfo' and 'node_name' mandatory
There's no reason why they need to be absent; if absent they're
likely to cause confusion.
2015-03-13 11:57:34 +09:00
Ian Barwick
33037dd7fb Explicitly specify problematic parameter names in error messages. 2015-03-13 11:47:28 +09:00
Ian Barwick
728b71c700 Clarify error message
"Node information" is too vague.
2015-03-13 08:26:11 +09:00
Ian Barwick
d08bd352c1 Use pg_malloc0() instead of malloc() 2015-03-10 23:37:18 +09:00
Ian Barwick
abf92883a8 Clean up log output
No need to prefix each line with the program name; this was pretty
inconsistent anyway. The only place where log output needs to identify
the outputting program is when syslog is being used, which is done
anyway.
2015-03-09 12:00:05 +09:00
Ian Barwick
fb8296644d Canonicalize configuration file path 2015-03-09 08:25:35 +09:00
Ian Barwick
d7365535ab Reject parameters with empty values. 2015-03-08 00:12:33 +09:00
Ian Barwick
a55587d75a Initialise upstream_node value 2015-03-07 23:54:54 +09:00
Ian Barwick
c6b0f77923 Prevent trim() from segfaulting on an empty string 2015-03-07 23:45:07 +09:00
Ian Barwick
1f9b19f3ff Add configuration option ignore_external_config_files 2015-03-05 13:46:55 +09:00
Ian Barwick
238fc589a1 Improve logging of configuration file operations 2015-03-03 18:14:26 +09:00
Ian Barwick
46888de77f Improve configuration file handling
Put logic in config.c so it can be shared between repmgr and repmgrd.
2015-03-03 15:39:56 +09:00
Ian Barwick
a69176fc1b tablespace_dirs -> tablespace_mapping
For consistency with the parameter name.
2015-02-28 11:03:03 +09:00
Ian Barwick
65dcce55e8 Remove redundant comment
Issue already addressed.
2015-02-28 10:54:42 +09:00
Ian Barwick
1803a16c7e Detect changes to configuration file
This will prevent unnecessary reconnects to the upstream and
updates of the node record on the primary.
2015-02-10 12:35:19 +09:00
Ian Barwick
21730899da Clarify error message.
Avoid implying there's a configuration file if none was provided.
2015-02-10 10:08:49 +09:00
Ian Barwick
01a33198fd Add configuration file parameter for pg_basebackup
"pg_basebackup_options"
  Enable custom options to be passed to pg_basebackup
  (e.g. --max-rate, --checkpoint, --xlogdir)

"tablespace_mapping"
  Analogue to pg_basebackup's (9.4 and later) -T/--tablespace-mapping
  option.

  Tablespace mapping could also be passed via "pg_basebackup_options",
  however by providing a separate parameter it makes the configuration
  file easier to read and allows us to verify the specified tablespaces
  exist (pg_basebackup won't do this, which can lead to undesired
  behaviour, i.e. attempting to create the tablespace in the original
  path).
2015-02-09 10:31:06 +09:00
Ian Barwick
a3f0e89a05 Improve pg_bindir parameter handling
Previously, the pg_bindir parameter was mandatory and could only be
provided in the repmgr.conf file, which was leading to the slightly
bizarre situation that e.g. for "clone standby", repmgr was complaining
that it didn't want the configuration file when it actually did.

pg_bindir is now optional - if not provided, it will use the default
path. It can be provided in the repmgr.conf file, or as a command
line parameter; the latter overrides the former.
2015-02-04 14:04:04 +09:00
Ian Barwick
3d9d0d98af Improve repmgr configuration file handling
Previous behaviour was somewhat counterintuitive, with an error
message being logged if no configuration file provided or found,
even though this is not actually an error.

Configuration files now handled like this:

- if a configuration file is explicitly provided (-f), error out
  if not found.

- if no configuration file explicitly provided, attempt to open
  default configuration file; if this does not exist, log
  notice and continue with default values.

Also, for 9.4 and later add a hint about replication slot usage
if 'use_replication_slots' not set.
2015-02-04 09:57:51 +09:00
Ian Barwick
2ece014952 Initial support for physical replication slots
Todo:
 - if slots specified in repmgr.conf, verify server version
 - store generated slot name in `repl_nodes` table
2015-02-02 15:53:53 +09:00
Ian Barwick
3dfa33d01d Store upstream node ID if set
Required to manage cascaded standbys
2015-01-16 00:29:43 +09:00
Ian Barwick
413cc6eb54 Add todo comment 2015-01-05 09:37:30 +09:00
Ian Barwick
4e9c58c7db Update copyright to 2015 2015-01-03 08:12:13 +09:00
Christian Kruse
98b1f8d28a rather big refactoring: use a naming scheme
In the past naming of functions, variables and such didn't really have a
naming scheme. Now they should have.
2014-03-06 18:34:40 +01:00
Christian Kruse
164cf9d08f completely avoid usage of strnlen() 2014-03-06 18:34:40 +01:00
Christian Kruse
d8b8bf0e2a pg_indent'ing all files… 2014-03-06 18:34:40 +01:00
Christian Kruse
516cde621a fix: strcpy() on overlapping memory regions is invalid 2014-02-18 15:42:20 +01:00
Christian Kruse
680f23fb1d copyright push 2014-01-23 10:37:49 +01:00
Christian Kruse
7cf2eb440d renamed config options to a much more descriptive name 2014-01-21 15:19:50 +01:00
Christian Kruse
5fc4a0382f added config options sleep_delay and sleep_monitor
sleep_monitor replaces the old SLEEP_MONITOR define and makes it
configurable; this is the interval in which we monitor

sleep_delay replaces the old sleep(300) when waiting for the master to
recover.
2014-01-17 14:35:50 +01:00
Christian Kruse
9563877fbb new config option, stdout/stdin closed
Now stdin and stdout get closed. Additionally stderr gets closed and
reopened to the new config option „logfile“ if specified
2014-01-16 15:22:34 +01:00
Christian Kruse
6e3fe059d8 added config options pg_bindir and pg_ctl_options 2014-01-09 14:44:34 +01:00
Christian Kruse
cbce29f009 fixed typos 2014-01-08 11:55:03 +01:00
Christian Kruse
0068dd573a fix: do not compare pointers but the strings 2014-01-07 15:52:29 +01:00
Jaime Casanova
5e04ab6eae Add a ssh_options parameter to allow ssh checking
to consider non-default values (ie: a different port)

Patch by Jay Taylor
2013-12-19 01:22:55 -05:00
Jaime Casanova
aaf35947ed Add tunables for connection retries to master and interval between
connection retries, these parameters along with master_response_timeout
determines the amount of time since failure to failover
2012-07-21 11:01:00 -05:00
Jaime Casanova
08ed0aa987 Commit 2d24518d9d added an additional
'}' at the end of parse_config(). removing.
2012-07-21 10:42:58 -05:00
Jaime Casanova
2d24518d9d If master_response_timeout hasn't been set in repmgr.conf it defaults
to zero, which was causing to a false positive in the failure detection
logic in wait_connection_availability(). So, change that to defaults to 60s
and add a check to avoid it being set to zero or negative.

Problem reported and analyzed by Andrew Newman
2012-07-21 09:49:05 -05:00
Jaime Casanova
50b7147f15 Change Copyright date to cover 2012 2012-07-04 10:47:26 -05:00
Jaime Casanova
3b2ccc5b78 Add a master_response_timeout parameter and use it to limit the amount
of time we spent a reponse from master before declaring the failure.
Also, change is_pgup() so it use PQsendQuery() instead of PQexec to
execute the check of master
2011-12-01 01:20:33 -05:00