pgsql: Fix resource management bug with replication=database.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix resource management bug with replication=database.
Date: 2020-04-04 02:33:44
Message-ID: E1jKYcy-0007Yp-5h@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix resource management bug with replication=database.

Commit 0d8c9c1210c44b36ec2efcb223a1dfbe897a3661 allowed BASE_BACKUP to
acquire a ResourceOwner without a transaction so that the backup
manifest functionality could use a BufFile, but it overlooked the fact
that when a walsender is used with replication=database, it might have
a transaction in progress, because in that mode, SQL and replication
commands can be mixed. Try to fix things up so that the two cleanup
mechanisms don't conflict.

Per buildfarm member serinus, which triggered the problem when
CREATE_REPLICATION_SLOT failed from inside a transaction. It passed
on the subsequent run, so evidently the failure doesn't happen every
time.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3e0d80fd8d3dd4f999e0d3aa3e591f480d8ad1fd

Modified Files
--------------
src/backend/replication/walsender.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Jeff Davis 2020-04-04 03:11:44 pgsql: Include chunk overhead in hash table entry size estimate.
Previous Message Robert Haas 2020-04-04 00:22:09 pgsql: Be more careful about time_t vs. pg_time_t in basebackup.c.