Re: 024_add_drop_pub.pl might fail due to deadlock

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Cc: Ajin Cherian <itsajin@gmail.com>, vignesh C <vignesh21@gmail.com>, Alexander Lakhin <exclusion@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-07-29T03:13:21Z
Lists: pgsql-hackers
On Tue, Jul 29, 2025 at 7:23 AM Hayato Kuroda (Fujitsu)
<kuroda.hayato@fujitsu.com> wrote:
>
> > Thanks for your review Kuroda-san, I have changed the logic to not use
> > already_locked and instead check if the locks are taken inside
> > UpdateSubscriptionRelState itself. I've tested this and this works
> > fine. If this logic is acceptable to the reviewers I can update the
> > other patches also in a similar way.
>
> Thanks for updates.
> However, I found that functions like LockHeldByMe(), CheckRelationOidLockedByMe()
> and LWLockHeldByMe() have been used only for the debug build. Functions like
> ProcArraySetReplicationSlotXmin() and MarkAsPrepared() can remove the flag from
> the argument but they are retained till now.
> Based on that, I suggest adding new argument (or add new Ex function for bank branches)
> and do the assertion check when the assertion is enabled in this build. Thought?
>

Yes, that makes sense to me. For HEAD and PG18, we can still add a new
argument to the API. For other bank branches, it is better to use a
new Ex function as suggested by Kuroda-San.

-- 
With Regards,
Amit Kapila.



Commits

  1. Fix a deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION.