RE: 024_add_drop_pub.pl might fail due to deadlock
Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>
From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'Ajin Cherian' <itsajin@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Alexander Lakhin <exclusion@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2025-07-25T08:00:58Z
Lists: pgsql-hackers
Dear Ajin, Thanks for patches! While checking, I recalled that the backpatch policy [1]. We must not modify definitions of opened functions but this does. Can you define another function like UpdateSubscriptionRelStateEx or something on the back branches? Another comment: ``` @@ -328,9 +328,13 @@ UpdateSubscriptionRelState(Oid subid, Oid relid, char state, Datum values[Natts_pg_subscription_rel]; bool replaces[Natts_pg_subscription_rel]; - LockSharedObject(SubscriptionRelationId, subid, 0, AccessShareLock); - - rel = table_open(SubscriptionRelRelationId, RowExclusiveLock); + if (already_locked) + rel = table_open(SubscriptionRelRelationId, NoLock); ``` Can we assert that RowExclusiveLock for pg_subscription_rel has already been acquired, by using CheckRelationOidLockedByMe() family? Also, I'm now bit confusing for which branches are really affected. Can you create all patches for branches, attach at the same e-mail and add some summary what you want to fix? E.g., you provided a patch for HEAD/PG15/PG14, what about PG18, 17, 16 and 13? If not needed, why? [1]: https://www.postgresql.org/docs/devel/xfunc-c.html#XFUNC-API-ABI-STABILITY-GUIDANCE Best regards, Hayato Kuroda FUJITSU LIMITED
Commits
-
Fix a deadlock during ALTER SUBSCRIPTION ... DROP PUBLICATION.
- 2ab2d6f97058 19 (unreleased) landed
- d9f01a287ab1 18.0 landed
- 434d2d147b58 15.14 landed
- 41fb3f51cb74 14.19 landed
- 8c298324a4f3 17.6 landed
- adfd8021911a 16.10 landed