pgsql: Fix assertion when decoding XLOG_PARAMETER_CHANGE on promoted pr - Mailing list pgsql-committers

From Masahiko Sawada
Subject pgsql: Fix assertion when decoding XLOG_PARAMETER_CHANGE on promoted pr
Date
Msg-id E1tmgYl-000WAe-1C@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix assertion when decoding XLOG_PARAMETER_CHANGE on promoted primary.

When a standby replays an XLOG_PARAMETER_CHANGE record that lowers
wal_level below logical, we invalidate all logical slots in hot
standby mode. However, if this record was replayed while not in hot
standby mode, logical slots could remain valid even after promotion,
potentially causing an assertion failure during WAL record decoding.

To fix this issue, this commit adds a check for hot_standby status
when restoring a logical replication slot on standbys. This check
ensures that logical slots are invalidated when they become
incompatible due to insufficient wal_level during recovery.

Backpatch to v16 where logical decoding on standby was introduced.

Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Discussion: https://postgr.es/m/CAD21AoABoFwGY_Rh2aeE6tEq3HkJxf0c6UeOXn4VV9v6BAQPSw%40mail.gmail.com
Backpatch-through: 16

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/174952ece1c04b725a2eafabf08d7192b99866ca

Modified Files
--------------
src/backend/replication/slot.c                     | 29 +++++++++++++----
.../recovery/t/035_standby_logical_decoding.pl     | 38 ++++++++++++++++++++++
2 files changed, 61 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: pgsql: oauth: Rename macro to avoid collisions on Windows
Next
From: Masahiko Sawada
Date:
Subject: pgsql: Fix assertion when decoding XLOG_PARAMETER_CHANGE on promoted pr