pgsql: Disallow starting server with insufficient wal_level for existin

Started by Andres Freundover 7 years ago1 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

Disallow starting server with insufficient wal_level for existing slot.

Previously it was possible to create a slot, change wal_level, and
restart, even if the new wal_level was insufficient for the
slot. That's a problem for both logical and physical slots, because
the necessary WAL records are not generated.

This removes a few tests in newer versions that, somewhat
inexplicably, whether restarting with a too low wal_level worked (a
buggy behaviour!).

Reported-By: Joshua D. Drake
Author: Andres Freund
Discussion: /messages/by-id/20181029191304.lbsmhshkyymhw22w@alap3.anarazel.de
Backpatch: 9.4-, where replication slots where introduced

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c33a01c7979dc267c81ece612af783ecacf22bc0

Modified Files
--------------
src/backend/replication/logical/logical.c | 5 +++++
src/backend/replication/slot.c | 30 +++++++++++++++++++++++++++++
src/test/recovery/t/006_logical_decoding.pl | 23 +---------------------
3 files changed, 36 insertions(+), 22 deletions(-)