Re: BUG #18988: DROP SUBSCRIPTION locks not-yet-accessed database
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Cc: vignesh C <vignesh21@gmail.com>,
"exclusion@gmail.com" <exclusion@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2025-07-31T11:44:01Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix self-deadlock during DROP SUBSCRIPTION.
- aa21e49225a1 19 (unreleased) landed
- a5d4c04150d4 18.0 landed
- 288a817bcb04 17.7 landed
- 7ece7612906e 16.11 landed
- e41137155869 15.15 landed
- ef77502746fe 14.20 landed
- 0a98f24a65cd 13.23 landed
On Thu, Jul 31, 2025 at 2:34 PM Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com> wrote: > > Dear Vignesh, Dilip, > > I found another corner case: > > ``` > postgres=# CREATE SUBSCRIPTION sub CONNECTION 'dbname=db1 user=postgres port=5431' PUBLICATION pub1 WITH (connect=false, slot_name=sub); > WARNING: subscription was created, but is not connected > HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription. > CREATE SUBSCRIPTION > postgres=# DROP SUBSCRIPTION sub ; > ... (won't return) > ``` > > Because still can explicitly specify the slot_name while creating the subscription. > Another pattern is to run ALTER SUBSCRIPTION SET (slot_name) command after the > CREATE SUBSCRIPTION WITH (connect=false);. > > Should we fix the case? If so, how? IMHO, what we should do is to set a flag in subscription that whether the connect is true or not, and drop subscription should not try to drop the slot if the connect is false, thoughts? -- Regards, Dilip Kumar Google