Subject: CVS commit: pkgsrc/databases/repmgr
From: Adam Ciarcinski
Date: 2019-07-12 14:49:27
Message id: 20190712124927.217B5FBF4@cvs.NetBSD.org

Log Message:
repmgr: updated to 4.4.0

4.4.0:
repmgr client enhancements
--------------------------

repmgr standby clone: prevent a standby from being cloned from a witness server \ 
(PostgreSQL 9.6 and later only).

repmgr witness register: prevent a witness server from being registered on the \ 
replication cluster primary server (PostgreSQL 9.6 and later only).

Registering a witness on the primary node would defeat the purpose of having a \ 
witness server, which is intended to remain running even if the cluster's \ 
primary goes down.

repmgr standby follow: note that an active, reachable cluster primary is \ 
required for this command; and provide a more helpful error message if no \ 
reachable primary could be found.

repmgr: when executing repmgr standby switchover, if --siblings-follow is not \ 
supplied, list all nodes which repmgr considers to be siblings (this will \ 
include the witness server, if in use), and which will remain attached to the \ 
old primary.

repmgr: when executing repmgr standby switchover, ignore nodes which are \ 
unreachable and marked as inactive. Previously it would abort if any node was \ 
unreachable, as that means it was unable to check if repmgrd is running.

However if the node has been marked as inactive in the repmgr metadata, it's \ 
reasonable to assume the node is no longer part of the replication cluster and \ 
does not need to be checked.

repmgr standby switchover and repmgr standby promote: when executing with the \ 
--dry-run option, continue checks as far as possible even if errors are \ 
encountered.

repmgr standby promote: add --siblings-follow (similar to repmgr standby switchover).

repmgr daemon status: make output similar to that of repmgr cluster show for \ 
consistency and to make it easier to identify nodes not in the expected state.

repmgr cluster show: display each node's timeline ID (PostgreSQL 9.6 and later only).

repmgr cluster show and repmgr daemon status: show the upstream node name as \ 
reported by each individual node - this helps visualise situations where the \ 
cluster is in an unexpected state, and provide a better idea of the actual \ 
cluster state.

For example, if a cluster has divided somehow and a set of nodes are following a \ 
new primary, when running either of these commands, repmgr will now show the \ 
name of the primary those nodes are actually following, rather than the now \ 
outdated node name recorded on the other side of the "split". A \ 
warning will also be issued about the unexpected situation.

repmgr cluster show and repmgr daemon status: check if a node is attached to its \ 
advertised upstream node, and issue a warning if the node is not attached.

repmgrd enhancements
--------------------

On the primary node, repmgrd is now able to monitor standby connections and, if \ 
the number of nodes connected falls below a certain (configurable) value, \ 
execute a custom script.

This provides an additional method for fencing an isolated primary node, and/or \ 
taking other action if one or more standys become disconnected.

See section Monitoring standby disconnections on the primary node for more details.

In a failover situation, repmgrd nodes on the standbys of the failed primary are \ 
now able confirm among themselves that none can still see the primary before \ 
continuing with the failover.

The repmgr.conf option primary_visibility_consensus must be set to true to \ 
enable this functionality.

See section Primary visibility consensus for more details.

Bug fixes
---------
Ensure BDR2-specific functionality cannot be used on BDR3 and later.

The BDR support present in repmgr is for specific BDR2 use cases.

repmgr: when executing repmgr standby clone in --dry-run mode, ensure provision \ 
of the --force option does not result in an existing data directory being \ 
modified in any way.

repmgr: when executing repmgr primary register with the --force option, if \ 
another primary record exists but the associated node is unreachable (or running \ 
as a standby), set that node's record to inactive to enable the current node to \ 
be registered as a primary.

repmgr: when executing repmgr standby clone with the --upstream-conninfo, ensure \ 
that application_name is set correctly in primary_conninfo.

repmgr: when executing repmgr standby switchover, don't abort if one or more \ 
nodes are not reachable and they are marked as inactive.

repmgr: canonicalize the data directory path when parsing the configuration \ 
file, so the provided path matches the path PostgreSQL reports as its data \ 
directory. Otherwise, if e.g. the data directory is configured with a trailing \ 
slash, repmgr node check --data-directory-config will return a spurious error.

repmgrd: fix memory leak which occurs while the monitored PostgreSQL node is not \ 
running.

Other
-----
The repmgr documentation has been converted to DocBook XML format, as currently \ 
used by the main PostgreSQL project. This means it can now be built against any \ 
PostgreSQL version from 9.5 (previously it was not possible to build the \ 
documentation against PostgreSQL 10 or later), and makes it easier to provide \ 
the documentation in other formats such as PDF.

Files:
RevisionActionfile
1.6modifypkgsrc/databases/repmgr/Makefile
1.5modifypkgsrc/databases/repmgr/PLIST
1.6modifypkgsrc/databases/repmgr/distinfo
1.1addpkgsrc/databases/repmgr/patches/patch-repmgr.c