Re: Subscription statistics are not dropped at DROP SUBSCRIPTION in some cases

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Melih Mutlu <m.melihmutlu@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-07-05T06:53:13Z
Lists: pgsql-hackers
On Mon, Jun 19, 2023 at 12:37 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Mon, Jun 19, 2023 at 6:50 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> > On Sat, Jun 17, 2023 at 6:45 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> > >
> > > On Tue, May 16, 2023 at 8:00 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > > >
> > > > On Thu, May 11, 2023 at 5:12 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > > > >
> > > >
> > > > After thinking more about it, I realized that this is not a problem
> > > > specific to HEAD. ISTM the problem is that by commit 7b64e4b3, we drop
> > > > the stats entry of subscription that is not associated with a
> > > > replication slot for apply worker, but we missed the case where the
> > > > subscription is not associated with both replication slots for apply
> > > > and tablesync. So IIUC we should backpatch it down to 15.
> > > >
> > >
> > > I agree that it should be backpatched to 15.
> > >
> > > > Since in pg15, since we don't create the subscription stats at CREATE
> > > > SUBSCRIPTION time but do when the first error is reported,
> > > >
> > >
> > > AFAICS, the call to pgstat_create_subscription() is present in
> > > CreateSubscription() in 15 as well, so, I don't get your point.
> >
> > IIUC in 15, pgstat_create_subscription() doesn't create the stats
> > entry. See commit e0b01429590.
> >
>
> Thanks for the clarification. Your changes looks good to me though I
> haven't tested it.

Thanks for reviewing the patch. Pushed.

Regards,

-- 
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



Commits

  1. Stabilize subscription stats test.

  2. pgstat: fix subscription stats entry leak.

  3. Create subscription stats entry at CREATE SUBSCRIPTION time

  4. pgstat: drop subscription stats without slot as well, fix comment