From 898a792eb8283e31efc0b6fcbc03bbcd5f7df667 Mon Sep 17 00:00:00 2001
From: Fujii Masao <fujii@postgresql.org>
Date: Wed, 22 Feb 2017 03:36:02 +0900
Subject: [PATCH] Fix connection leak in DROP SUBSCRIPTION command.

Previously the command forgot to close the connection to the publisher
when it failed to drop the replication slot.
---
 src/backend/commands/subscriptioncmds.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index ab21e64b488..c9e7c08c8c1 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -546,10 +546,14 @@ DropSubscription(DropSubscriptionStmt *stmt)
 				 errdetail("The error was: %s", err)));
 
 	if (!walrcv_command(wrconn, cmd.data, &err))
+	{
+		/* Close the connection in case of failure */
+		walrcv_disconnect(wrconn);		
 		ereport(ERROR,
 				(errmsg("could not drop the replication slot \"%s\" on publisher",
 						slotname),
 				 errdetail("The error was: %s", err)));
+	}
 	else
 		ereport(NOTICE,
 				(errmsg("dropped replication slot \"%s\" on publisher",
-- 
GitLab