]> granicus.if.org Git - postgresql/commit
Allow replication slots to be dropped in single-user mode
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 6 Jul 2018 20:38:29 +0000 (16:38 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 6 Jul 2018 20:38:29 +0000 (16:38 -0400)
commita1f680d962ffdd563eee7665da5b3b9967a6070f
tree209893f95cc5f2f115c01962ac9c0a3e9d309174
parentbba8c612117416907f332fce8b9e80b748e0b798
Allow replication slots to be dropped in single-user mode

Starting with commit 9915de6c1cb2, replication slot drop uses a
condition variable sleep to wait until the current user of the slot goes
away.  This is more user friendly than the previous behavior of erroring
out if the slot is in use, but it fails with a not-for-user-consumption
error message in single-user mode; plus, if you're using single-user
mode because you don't want to start the server in the regular mode
(say, disk is full and WAL won't recycle because of the slot), it's
inconvenient.

Fix by skipping the cond variable sleep in single-user mode, since
there can't be anybody to wait for anyway.

Reported-by: tushar <tushar.ahuja@enterprisedb.com>
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/3b2f809f-326c-38dd-7a9e-897f957a4eb1@enterprisedb.com
src/backend/replication/slot.c