On 2020-05-20 17:16, Anders Bøgh Bruun wrote:
[67] LOG:  logical replication apply worker for subscription "widgets_sub" has started [67] DEBUG:  connecting to publisher using connection string "dbname=testdb host=master port=5432 user=repuser password=abc123" [67] ERROR:  could not receive data from WAL stream: ERROR:  publication "widgets_pub" does not exist   CONTEXT:  slot "my_slot", output plugin "pgoutput", in the change callback, associated LSN 0/1674958 [1] DEBUG:  unregistering background worker "logical replication worker for subscription 16396" [1] LOG:  background worker "logical replication worker" (PID 67) exited with exit code 1

I can verify that the publication called widgets_pub does exist, and I am not seeing any errors on the sending side.

The SQL-file named "works" just has the creation of the replication slot moved down to after I insert some data into the table I want to replicate. And that works as expected.

You need to create the publication before the replication slot. The walsender's view of the world moves along with the WAL it is decoding/sending. So when the subscription worker connects, it initially sees a state as of the creation of the replication slot, when the publication did not exist yet.

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply via email to