Re: pgsql: Fix connection leak in DROP SUBSCRIPTION command.

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Fujii Masao <fujii(at)postgresql(dot)org>, pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Fix connection leak in DROP SUBSCRIPTION command.
Date: 2017-02-21 21:57:56
Message-ID: CAB7nPqQwbsUKMjoaePbJ79NzcXeqv7q_NAdC0jJ+QvHroxXS5g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Wed, Feb 22, 2017 at 4:12 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Fujii Masao <fujii(at)postgresql(dot)org> writes:
>> 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.
>
> If there's a bug here, this seems like an extremely unreliable way of
> fixing it. What if an error gets thrown before you reach that ereport?
>
> In other words, this coding is assuming that the walrcv_command()
> subroutine cannot throw an error, which I would consider dangerous
> even if it were a fixed subroutine. If it's a hook that's doing
> unknown stuff, that seems a completely untenable assumption. You
> really need either to hook the cleanup action into normal error
> recovery, or to use a PG_TRY block.

To be honest, I have thought about using PG_ENSURE_ERROR_CLEANUP()
when seeing the thread. If other ERROR messages are generated in the
future that the current fix would be unreliable.
--
Michael

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2017-02-21 22:01:59 pgsql: Add tests for two-phase commit
Previous Message Peter Eisentraut 2017-02-21 20:44:17 pgsql: Fix whitespace