Subject: Re: repmgr(d) versions 5.5 vs 5.4 from apt.postgresql.org

From: Ron Johnson <[email-masked]>
Date: Tue, 24 Dec 2024 08:29:40 -0500

On Tue, Dec 24, 2024 at 4:28 AM Matthias Leisi <[email-masked]> wrote:

> I installed Postgres 16/17 from apt.postgresql.org (with the intent of
> using version 17) on Debian 12/Bookworm. Both have the same version of
> repmgr:
>
> postgres@dev-pgcl01:~$ /usr/lib/postgresql/17/bin/repmgr  --version
> repmgr 5.5.0
> postgres@dev-pgcl01:~$ /usr/lib/postgresql/16/bin/repmgr  --version
> repmgr 5.5.0
>
> root@dev-pgcl01:~# apt-cache show postgresql-17-repmgr | grep "Filename"
> Filename:
> pool/main/r/repmgr/postgresql-17-repmgr_5.5.0-2.pgdg120+1_arm64.deb
>
> In postgresql.conf, I explicitly load the version 17 .so (just to be sure
> it’s not loading something potentially different):
>
> shared_preload_libraries = '/usr/lib/postgresql/17/lib/repmgr.so'
>
> repmgr.conf is minimalistic:
>
> node_id=1
> node_name=node1
> conninfo='host=10.20.70.26 user=repmgr dbname=repmgr connect_timeout=2'
> data_directory='/var/lib/postgresql/17/'
> failover=automatic
> use_replication_slots=true
> promote_command='/usr/bin/repmgr standby promote -f
> /etc/postgresql/17/main/repmgr.conf --log-to-file'
> follow_command='/usr/bin/repmgr standby follow -f
> /etc/postgresql/17/main/repmgr.conf --log-to-file --upstream-node-id=%n‘
>
> (plus a few configs about the logs)
>
> I created the cluster with
>
> /usr/lib/postgresql/17/bin/repmgr -f /etc/postgresql/17/main/repmgr.conf
> primary register
>
> And it shows what I would expect:
>
> postgres@dev-pgcl01:~$ /usr/lib/postgresql/17/bin/repmgr -f
> /etc/postgresql/17/main/repmgr.conf cluster show
> DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr
> host=10.20.70.26 fallback_application_name=repmgr options=-csearch_path="
> DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr
> host=10.20.70.26 fallback_application_name=repmgr options=-csearch_path="
>  ID | Name  | Role    | Status    | Upstream | Location | Priority |
> Timeline | Connection string
>
> ----+-------+---------+-----------+----------+----------+----------+----------+----------------------------------------------------------------------------------------
>  1  | node1 | primary | * running |          | default  | 100      | 1
>    | host=10.20.70.26 user=repmgr dbname=repmgr connect_timeout=2
>
>
> I attempt to start repmgrd with
>
> postgres@dev-pgcl01:~$ /usr/lib/postgresql/17/bin/repmgrd -v -f
> /etc/postgresql/17/main/repmgr.conf --verbose
>
> Which gives the following log output:
>
> [2024-12-24 09:21:25] [NOTICE] repmgrd (repmgrd 5.5.0) starting up
> [2024-12-24 09:21:25] [INFO] connecting to database "host=10.20.70.26
> user=repmgr dbname=repmgr connect_timeout=2"
> [2024-12-24 09:21:25] [DEBUG] connecting to: "user=repmgr
> connect_timeout=2 dbname=repmgr host=10.20.70.26
> fallback_application_name=repmgr options=-csearch_path="
> [2024-12-24 09:21:25] [DEBUG] set_config():
>   SET synchronous_commit TO 'local'
> [2024-12-24 09:21:25] [DEBUG] expected extension version: 50500; extension
> version: 50400
> [2024-12-24 09:21:25] [ERROR] this "repmgr" version is newer than the
> installed "repmgr" extension version
> [2024-12-24 09:21:25] [DETAIL] "repmgr" version 5.5.0 providing extension
> version 5.5.0 is installed but extension is version 5.4
> [2024-12-24 09:21:25] [HINT] update the installed extension version by
> executing "ALTER EXTENSION repmgr UPDATE" in the repmgr database
>
>
> SELECT * FROM pg_catalog.pg_extension WHERE extname = 'repmgr'
>
> shows version 5.4
>
> The suggested ALTER EXTENSION from the log hint does not do anything I
> could see.
>
> The same effect if I try the same using version 16.
>
> How to continue from here? What am I missing?
>

This [HINT] says that YOU are supposed to run the ALTER EXTENSION command:
[quote]
update the installed extension version by executing "ALTER EXTENSION repmgr
UPDATE"
[/quote]

-- 
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

---

From: Matthias Leisi <[email-masked]>
Date: Tue, 24 Dec 2024 15:04:25 +0100

> update the installed extension version by executing "ALTER EXTENSION repmgr UPDATE"
> [/quote]

I did run that, but it seemed to have no effect. How should the update work, what should it do?

— Matthias

---

From: Tom Lane <[email-masked]>
Date: Tue, 24 Dec 2024 11:12:02 -0500

> I did run that, but it seemed to have no effect. How should the update work, what should it do?

What this suggests is that you have a repmgr executable (.so file)
that is newer than the extension's SQL files
(.../share/extension/repmgr.control etc).
You need to straighten out that version mismatch.

			regards, tom lane