On 07/01/2019 11:04 AM, Amit Khandekar wrote:
Also, in the updated patch (v11), I have added some scenarios that
verify that slot is dropped when either master wal_level is
insufficient, or when slot is conflicting. Also organized the test
file a bit.
One scenario where replication slot removed even after fixing the problem (which Error message suggested to do)
Please refer this below scenario
Master cluster-
postgresql,conf file
wal_level=logical
hot_standby_feedback = on
port=5432
Standby cluster-
postgresql,conf file
wal_level=logical
hot_standby_feedback = on
port=5433
both Master/Slave cluster are up and running and are in SYNC with each other
Create a logical replication slot on SLAVE ( SELECT * from pg_create_logical_replication_slot('m', 'test_decoding'); )
change wal_level='hot_standby' on Master postgresql.conf file / restart the server
Run get_changes function on Standby -
postgres=# select * from pg_logical_slot_get_changes('m',null,null);
ERROR: logical decoding on standby requires wal_level >= logical on master
Correct it on Master postgresql.conf file ,i.e set wal_level='logical' again / restart the server
and again fire get_changes function on Standby -
postgres=# select * from pg_logical_slot_get_changes('m',null,null);
ERROR: replication slot "m" does not exist
This looks little weird as slot got dropped/removed internally . i guess it should get invalid rather than removed automatically.
Lets user's delete the slot themself rather than automatically removed as a surprise.
--
regards,tushar
EnterpriseDB https://www.enterprisedb.com/
The Enterprise PostgreSQL Company