Re: logical replication: could not create file "state.tmp": File exists
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Grigory Smolkin <g.smolkin@postgrespro.ru>
Cc: Pg Bugs <pgsql-bugs@postgresql.org>
Date: 2020-05-25T20:35:41Z
Lists: pgsql-bugs
On 2019-Nov-30, Grigory Smolkin wrote: > One of my colleagues encountered an out of space condition, which broke his > logical replication setup. > It`s manifested with the following errors: > > ERROR: could not receive data from WAL stream: ERROR: could not create > file "pg_replslot/some_sub/state.tmp": File exists We haven't addressed this problem, have we? At least, I see that this routine still looks like this: > diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c > index 21ae8531b3..ef415b44c8 100644 > --- a/src/backend/replication/slot.c > +++ b/src/backend/replication/slot.c > @@ -1253,7 +1253,7 @@ SaveSlotToPath(ReplicationSlot *slot, const char *dir, int elevel) > sprintf(tmppath, "%s/state.tmp", dir); > sprintf(path, "%s/state", dir); > > - fd = OpenTransientFile(tmppath, O_CREAT | O_EXCL | O_WRONLY | PG_BINARY); -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Remove state.tmp when failing to save a replication slot
- c878d9808420 13.23 landed
- f57f2760e665 14.20 landed
- 0adf424b490b 15.15 landed
- bfdd1a12d2d9 16.11 landed
- 42348839d8b7 17.7 landed
- 9a6ea00ac8c0 18.1 landed
- 912af1c7e9c9 19 (unreleased) landed