pg_basebackup behavior on non-existent slot

From: Dimitri Fontaine <Dimitri(dot)Fontaine(at)microsoft(dot)com>
To: "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: pg_basebackup behavior on non-existent slot
Date: 2021-09-28 09:50:45
Message-ID: VI1PR83MB0189818B82C19059CB62E26199A89@VI1PR83MB0189.EURPRD83.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

When developing pg_auto_failover we found a bug where if the target replication slot given to pg_basebackup does not exist, then a full copy of the source PGDATA is completed before erroring out. You could easily end-up copying 100GB of data over the network just to see pg_basebackup remove them all at the end, and then when using the –progress option, you have to scroll up to the very start of the output to see the error message.

Please find attached a patch that shows a way to fix the issue. The patch is missing windows compatibility, I don’t know how to cast the WNOHANG spell on this platform. Please use the patch as you see fit, either inspiration, or maybe something you would like to commit to fix the bug.

Here what it looks like without the patch:

$ ./src/bin/pg_basebackup/pg_basebackup -p 5501 -D /tmp/bb -X stream -S SlotDoesNotExists -P
pg_basebackup: error: could not send replication command "START_REPLICATION": ERROR: replication slot "SlotDoesNotExists" does not exist
32971/32971 kB (100%), 1/1 tablespace
pg_basebackup: error: child process exited with exit code 1
pg_basebackup: removing data directory "/tmp/bb"

Here’s what it looks like with the patch applied locally:

$ ./src/bin/pg_basebackup/pg_basebackup -p 5501 -D /tmp/bb -X stream -S SlotDoesNotExists -P
pg_basebackup: error: could not send replication command "START_REPLICATION": ERROR: replication slot "SlotDoesNotExists" does not exist
pg_basebackup: error: child process exited with exit code 1
pg_basebackup: removing data directory "/tmp/bb"

Regards,
--
Dimitri Fontaine
PostgreSQL Major Contributor, Citus Data, Microsoft
Author of “The Art of PostgreSQL<https://theartofpostgresql.com/>”

Attachment Content-Type Size
pg_basebackup_rep_slot.v4.patch application/octet-stream 6.8 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Magnus Hagander 2021-09-28 10:25:09 Re: pg_basebackup behavior on non-existent slot
Previous Message hpc researcher_mspk 2021-09-28 06:15:34 Re: BUG #17200: PostgreSQL-Support Profile Guide Optimization(Clang/GCC)?