Commit Graph

99 Commits

Author SHA1 Message Date
Ian Barwick
52db03d320 Add 'primary_response_timeout' as synonym for 'master_response_timeout'
We'll switch terminology in a future release and maintain
'master_response_timeout' for backwards compatibility
2015-11-30 16:08:56 +09:00
Ian Barwick
6da03a6157 Free connection options array after use. 2015-10-01 09:16:36 +09:00
Ian Barwick
9bb6befa25 Sanity check 'conninfo' parameter
Catch errors early, it makes everyone's life easier.
2015-10-01 09:06:27 +09:00
Ian Barwick
c3bd02b83d Standardize if-statement formatting
"if(" -> "if ("
2015-09-24 17:45:08 +09:00
Ian Barwick
30fd111cba Rework config file handling
If no configuration file provided, also check default Postgres
sysconfig dir.

It would also be useful to check the configuration directory
provided by the RPM/DEB packages, not sure if that's programmatically
feasible.
2015-09-21 15:55:29 +09:00
Simon Oxwell
faf72a2514 Ignore comments after values 2015-07-15 14:53:35 +10:00
Ian Barwick
7010b636e0 Reword error message for consistency
Github issue #87
2015-07-10 10:11:23 +09:00
Gregory Duchatelet
00deff9069 [Fix] if 'node' config parameter is set as a string, nothing complain and all nodes are set to id '0'. 2015-07-06 11:20:31 +02:00
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