summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/replication/slot.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index fd0fdb96d42..ac188bb2f77 100644
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -2376,6 +2376,7 @@ SaveSlotToPath(ReplicationSlot *slot, const char *dir, int elevel)
pgstat_report_wait_end();
CloseTransientFile(fd);
+ unlink(tmppath);
LWLockRelease(&slot->io_in_progress_lock);
/* if write didn't set errno, assume problem is no disk space */
@@ -2396,7 +2397,9 @@ SaveSlotToPath(ReplicationSlot *slot, const char *dir, int elevel)
pgstat_report_wait_end();
CloseTransientFile(fd);
+ unlink(tmppath);
LWLockRelease(&slot->io_in_progress_lock);
+
errno = save_errno;
ereport(elevel,
(errcode_for_file_access(),
@@ -2410,7 +2413,9 @@ SaveSlotToPath(ReplicationSlot *slot, const char *dir, int elevel)
{
int save_errno = errno;
+ unlink(tmppath);
LWLockRelease(&slot->io_in_progress_lock);
+
errno = save_errno;
ereport(elevel,
(errcode_for_file_access(),
@@ -2424,7 +2429,9 @@ SaveSlotToPath(ReplicationSlot *slot, const char *dir, int elevel)
{
int save_errno = errno;
+ unlink(tmppath);
LWLockRelease(&slot->io_in_progress_lock);
+
errno = save_errno;
ereport(elevel,
(errcode_for_file_access(),