> It appears to be. wal_sender is setting restart_lsn to a valid LSN even > when the slot is invalidated.
> postgres@pgvm:~$ /usr/local/pgsql/bin/pg_receivewal -S s1 -D . > pg_receivewal: error: unexpected termination of replication stream: ERROR: > requested WAL segment 0000000100000000000000EB has already been removed > pg_receivewal: disconnected; waiting 5 seconds to try again > ^Cpostgres@pgvm:~$ /usr/local/pgsql/bin/psql > psql (16devel) > Type "help" for help. > > postgres=# select * from pg_replication_slots; > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request.
Whoa, I cannot reproduce this :-(
I have a old .partial file in the data directory to reproduce this.
postgres=# select * from pg_replication_slots; slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn | wal_status | safe_wal_size | two_phase -----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------+------------+---------------+----------- s2 | | physical | | | f | f | | | | 2/DC000000 | | lost | | f (1 row)
postgres=# \q postgres@pgvm:~$ ls 0000000100000002000000D8 0000000100000002000000D9 0000000100000002000000DA 0000000100000002000000DB 0000000100000002000000DC.partial
-- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ "Java is clearly an example of money oriented programming" (A. Stepanov)