mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-23 15:16:29 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78cc278639 | ||
|
|
ceb65027c6 | ||
|
|
e6caa14ea2 | ||
|
|
88a11f36ca | ||
|
|
7f371b11a5 | ||
|
|
349eacd4b7 | ||
|
|
9f2afe9643 | ||
|
|
356f65531f | ||
|
|
2a7579c770 | ||
|
|
820d972d41 | ||
|
|
d0add49c84 | ||
|
|
9a84fa84f9 | ||
|
|
ff2c56f5cb | ||
|
|
3b860bad80 |
3
HISTORY
3
HISTORY
@@ -1,3 +1,6 @@
|
|||||||
|
5.3.1 2022-??-??
|
||||||
|
repmgrd: fixes for potential connection leaks (hslightdb)
|
||||||
|
|
||||||
5.3.0 2021-10-12
|
5.3.0 2021-10-12
|
||||||
standby switchover: improve handling of node rejoin failure (Ian)
|
standby switchover: improve handling of node rejoin failure (Ian)
|
||||||
repmgrd: prefix all shared library functions with "repmgr_" to
|
repmgrd: prefix all shared library functions with "repmgr_" to
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
/*
|
|
||||||
* bdr_version_api.h
|
|
||||||
*
|
|
||||||
* This is a dummy file to facilitated building Debian packages against
|
|
||||||
* PostgreSQL Extended. It may be removed in the future. Do not add any
|
|
||||||
* code to this file.
|
|
||||||
*/
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([repmgr], [5.3.0], [repmgr@googlegroups.com], [repmgr], [https://repmgr.org/])
|
AC_INIT([repmgr], [5.3.1], [repmgr@googlegroups.com], [repmgr], [https://repmgr.org/])
|
||||||
|
|
||||||
AC_COPYRIGHT([Copyright (c) 2010-2021, EnterpriseDB Corporation])
|
AC_COPYRIGHT([Copyright (c) 2010-2021, EnterpriseDB Corporation])
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,38 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<!-- remember to update the release date in ../repmgr_version.h.in -->
|
<!-- remember to update the release date in ../repmgr_version.h.in -->
|
||||||
|
<sect1 id="release-5.3.1">
|
||||||
|
<title id="release-current">Release 5.3.1</title>
|
||||||
|
<para><emphasis>Tue 15 February, 2022</emphasis></para>
|
||||||
|
<para>
|
||||||
|
&repmgr; 5.3.1 is a minor release.
|
||||||
|
</para>
|
||||||
|
<sect2>
|
||||||
|
<title>Bug fixes</title>
|
||||||
|
<para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix upgrade path from &repmgr; 4.2 and 4.3 to &repmgr; 5.3.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
&repmgrd;: ensure potentially open connections are closed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
In some cases, when recovering from degraded state in local node monitoring,
|
||||||
|
new connection was opened to the local node without closing
|
||||||
|
the old one, which will result in memory leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-5.3.0">
|
<sect1 id="release-5.3.0">
|
||||||
<title id="release-current">Release 5.3.0</title>
|
<title>Release 5.3.0</title>
|
||||||
<para><emphasis>Tue 12 October, 2021</emphasis></para>
|
<para><emphasis>Tue 12 October, 2021</emphasis></para>
|
||||||
<para>
|
<para>
|
||||||
&repmgr; 5.3.0 is a major release.
|
&repmgr; 5.3.0 is a major release.
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ conninfo='host=node1 user=repmgr dbname=repmgr connect_timeout=2'</programlistin
|
|||||||
|
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>repmgr.conf</primary>
|
<primary>repmgr.conf</primary>
|
||||||
<secondary>ostgreSQL major version upgrades</secondary>
|
<secondary>PostgreSQL major version upgrades</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|||||||
@@ -135,7 +135,7 @@
|
|||||||
NO
|
NO
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<link linkend="release-5.2.0">5.2.0</link> (2020-10-22)
|
<link linkend="release-5.2.1">5.2.1</link> (2020-12-07)
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
9.4, 9.5, 9.6, 10, 11, 12, 13
|
9.4, 9.5, 9.6, 10, 11, 12, 13
|
||||||
|
|||||||
@@ -1,17 +1,10 @@
|
|||||||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||||
\echo Use "CREATE EXTENSION repmgr" to load this file. \quit
|
\echo Use "ALTER EXTENSION repmgr UPDATE" to load this file. \quit
|
||||||
|
|
||||||
CREATE FUNCTION set_upstream_last_seen()
|
-- This script is intentionally empty and exists to skip the CREATE FUNCTION
|
||||||
RETURNS VOID
|
-- commands contained in the 4.2--4.3 and 4.3--4.4 extension upgrade scripts,
|
||||||
AS 'MODULE_PATHNAME', 'set_upstream_last_seen'
|
-- which reference C functions which no longer exist in 5.3 and later.
|
||||||
LANGUAGE C STRICT;
|
--
|
||||||
|
-- These functions will be explicitly created in the 5.2--5.3 extension
|
||||||
|
-- upgrade step with the correct C function references.
|
||||||
|
|
||||||
CREATE FUNCTION get_upstream_last_seen()
|
|
||||||
RETURNS INT
|
|
||||||
AS 'MODULE_PATHNAME', 'get_upstream_last_seen'
|
|
||||||
LANGUAGE C STRICT;
|
|
||||||
|
|
||||||
CREATE FUNCTION get_wal_receiver_pid()
|
|
||||||
RETURNS INT
|
|
||||||
AS 'MODULE_PATHNAME', 'get_wal_receiver_pid'
|
|
||||||
LANGUAGE C STRICT;
|
|
||||||
|
|||||||
@@ -1,19 +1,9 @@
|
|||||||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||||
\echo Use "CREATE EXTENSION repmgr" to load this file. \quit
|
\echo Use "ALTER EXTENSION repmgr UPDATE" to load this file. \quit
|
||||||
|
|
||||||
DROP FUNCTION set_upstream_last_seen();
|
-- This script is intentionally empty and exists to skip the CREATE FUNCTION
|
||||||
|
-- commands contained in the 4.3--4.4 extension upgrade script, which reference
|
||||||
CREATE FUNCTION set_upstream_last_seen(INT)
|
-- C functions which no longer exist in 5.3 and later.
|
||||||
RETURNS VOID
|
--
|
||||||
AS 'MODULE_PATHNAME', 'set_upstream_last_seen'
|
-- These functions will be explicitly created in the 5.2--5.3 extension
|
||||||
LANGUAGE C STRICT;
|
-- upgrade step with the correct C function references.
|
||||||
|
|
||||||
CREATE FUNCTION get_upstream_node_id()
|
|
||||||
RETURNS INT
|
|
||||||
AS 'MODULE_PATHNAME', 'get_upstream_node_id'
|
|
||||||
LANGUAGE C STRICT;
|
|
||||||
|
|
||||||
CREATE FUNCTION set_upstream_node_id(INT)
|
|
||||||
RETURNS VOID
|
|
||||||
AS 'MODULE_PATHNAME', 'set_upstream_node_id'
|
|
||||||
LANGUAGE C STRICT;
|
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <pwd.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
#replication_user='repmgr' # User to make replication connections with, if not set
|
#replication_user='repmgr' # User to make replication connections with, if not set
|
||||||
# defaults to the user defined in "conninfo".
|
# defaults to the user defined in "conninfo".
|
||||||
|
|
||||||
#replication_type='physical' # Must "physical" (the default).
|
#replication_type='physical' # Must "physical" (the default).
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ ssh_options='-q -o ConnectTimeout=10' # Options to append to "ssh"
|
|||||||
#follow_command='' # command repmgrd executes when instructing a standby to follow a new primary;
|
#follow_command='' # command repmgrd executes when instructing a standby to follow a new primary;
|
||||||
# use something like:
|
# use something like:
|
||||||
#
|
#
|
||||||
# repmgr standby follow -f /etc/repmgr.conf -W --upstream-node-id=%n
|
# repmgr standby follow -f /etc/repmgr.conf --upstream-node-id=%n
|
||||||
#
|
#
|
||||||
#primary_notification_timeout=60 # Interval (in seconds) which repmgrd on a standby
|
#primary_notification_timeout=60 # Interval (in seconds) which repmgrd on a standby
|
||||||
# will wait for a notification from the new primary,
|
# will wait for a notification from the new primary,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#define REPMGR_VERSION_DATE ""
|
#define REPMGR_VERSION_DATE ""
|
||||||
#define REPMGR_VERSION "5.3.0"
|
#define REPMGR_VERSION "5.3.1"
|
||||||
#define REPMGR_VERSION_NUM 50300
|
#define REPMGR_VERSION_NUM 50301
|
||||||
#define REPMGR_EXTENSION_VERSION "5.3"
|
#define REPMGR_EXTENSION_VERSION "5.3"
|
||||||
#define REPMGR_EXTENSION_NUM 50300
|
#define REPMGR_EXTENSION_NUM 50300
|
||||||
#define REPMGR_RELEASE_DATE "2021-10-12"
|
#define REPMGR_RELEASE_DATE "2022-02-15"
|
||||||
#define PG_ACTUAL_VERSION_NUM
|
#define PG_ACTUAL_VERSION_NUM
|
||||||
|
|||||||
@@ -585,6 +585,7 @@ monitor_streaming_primary(void)
|
|||||||
|
|
||||||
if (is_server_available(local_node_info.conninfo) == true)
|
if (is_server_available(local_node_info.conninfo) == true)
|
||||||
{
|
{
|
||||||
|
close_connection(&local_conn);
|
||||||
local_conn = establish_db_connection(local_node_info.conninfo, false);
|
local_conn = establish_db_connection(local_node_info.conninfo, false);
|
||||||
|
|
||||||
if (PQstatus(local_conn) != CONNECTION_OK)
|
if (PQstatus(local_conn) != CONNECTION_OK)
|
||||||
@@ -1813,7 +1814,10 @@ monitor_streaming_standby(void)
|
|||||||
if (upstream_check_result == true)
|
if (upstream_check_result == true)
|
||||||
{
|
{
|
||||||
if (config_file_options.connection_check_type != CHECK_QUERY)
|
if (config_file_options.connection_check_type != CHECK_QUERY)
|
||||||
|
{
|
||||||
|
close_connection(&upstream_conn);
|
||||||
upstream_conn = establish_db_connection(upstream_node_info.conninfo, false);
|
upstream_conn = establish_db_connection(upstream_node_info.conninfo, false);
|
||||||
|
}
|
||||||
|
|
||||||
if (PQstatus(upstream_conn) == CONNECTION_OK)
|
if (PQstatus(upstream_conn) == CONNECTION_OK)
|
||||||
{
|
{
|
||||||
@@ -2546,8 +2550,10 @@ monitor_streaming_witness(void)
|
|||||||
if (check_upstream_connection(&primary_conn, upstream_node_info.conninfo, NULL) == true)
|
if (check_upstream_connection(&primary_conn, upstream_node_info.conninfo, NULL) == true)
|
||||||
{
|
{
|
||||||
if (config_file_options.connection_check_type != CHECK_QUERY)
|
if (config_file_options.connection_check_type != CHECK_QUERY)
|
||||||
|
{
|
||||||
|
close_connection(&primary_conn);
|
||||||
primary_conn = establish_db_connection(upstream_node_info.conninfo, false);
|
primary_conn = establish_db_connection(upstream_node_info.conninfo, false);
|
||||||
|
}
|
||||||
if (PQstatus(primary_conn) == CONNECTION_OK)
|
if (PQstatus(primary_conn) == CONNECTION_OK)
|
||||||
{
|
{
|
||||||
PQExpBufferData event_details;
|
PQExpBufferData event_details;
|
||||||
@@ -3061,7 +3067,6 @@ do_primary_failover(void)
|
|||||||
|
|
||||||
t_node_info new_primary = T_NODE_INFO_INITIALIZER;
|
t_node_info new_primary = T_NODE_INFO_INITIALIZER;
|
||||||
RecordStatus record_status = RECORD_NOT_FOUND;
|
RecordStatus record_status = RECORD_NOT_FOUND;
|
||||||
PGconn *new_primary_conn;
|
|
||||||
|
|
||||||
record_status = get_node_record(local_conn, new_primary_id, &new_primary);
|
record_status = get_node_record(local_conn, new_primary_id, &new_primary);
|
||||||
|
|
||||||
@@ -3073,6 +3078,7 @@ do_primary_failover(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
PQExpBufferData event_details;
|
PQExpBufferData event_details;
|
||||||
|
PGconn *new_primary_conn;
|
||||||
|
|
||||||
initPQExpBuffer(&event_details);
|
initPQExpBuffer(&event_details);
|
||||||
appendPQExpBuffer(&event_details,
|
appendPQExpBuffer(&event_details,
|
||||||
@@ -3093,7 +3099,6 @@ do_primary_failover(void)
|
|||||||
event_details.data);
|
event_details.data);
|
||||||
close_connection(&new_primary_conn);
|
close_connection(&new_primary_conn);
|
||||||
termPQExpBuffer(&event_details);
|
termPQExpBuffer(&event_details);
|
||||||
|
|
||||||
}
|
}
|
||||||
failover_state = FAILOVER_STATE_REQUIRES_MANUAL_FAILOVER;
|
failover_state = FAILOVER_STATE_REQUIRES_MANUAL_FAILOVER;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user