Re: BUG #18988: DROP SUBSCRIPTION locks not-yet-accessed database
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Álvaro Herrera <alvherre@kurilemu.de>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, "exclusion@gmail.com" <exclusion@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2025-08-18T14:21:39Z
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
Attachments
- v8-0001-Fix-DROP-SUBSCRIPTION-deadlock-with-walsender-pro_head.patch (application/octet-stream) patch v8-0001
- v8-0001-Fix-DROP-SUBSCRIPTION-deadlock-with-walsender-pro_v13.patch (application/octet-stream) patch v8-0001
On Mon, Aug 18, 2025 at 2:56 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > Looks mostly good. How about slightly changing the comment as in attached? Your suggestion LGTM, I am making back branch patches. I observed another behavior change in the test in v13. The $sdterr is matching with error details not with the error code, so for v13 i have to modify the error comparison string as [1] whereas with other versions it's like [2]. But if we execute this test from psql then I can see the same error in v13 as well[3]. Not sure why perl is behaving differently. Maybe there is a way to change this but I could not figure it out. And another difference I have noticed is that in v13 I had to give complete publisher_connstr that's maybe it's not the starting server on the default port. From this I realized that maybe for other branches where it is working fine with just dbname, we should also include publisher_connstr as shown [4] just to ensure we are connecting to the right node, thoughts? [1] +like( + $stderr, + qr/ERROR: replication slot "regress_sub1" does not exist/, + "could not drop replication slot: error message"); [2] +like( + $stderr, + qr/ERROR: could not drop replication slot "regress_sub1" on publisher/, + "could not drop replication slot: error message"); [3] postgres[2045257]=# DROP SUBSCRIPTION regress_sub1; ERROR: XX000: could not drop the replication slot "regress_sub1" on publisher DETAIL: The error was: ERROR: replication slot "regress_sub1" does not exist LOCATION: DropSubscription, subscriptioncmds.c:1008 [4] +$publisher_connstr = $node_publisher->connstr . ' dbname=regress_db'; +$node_publisher->safe_psql( + 'postgres', qq( + CREATE DATABASE regress_db; + CREATE SUBSCRIPTION regress_sub1 CONNECTION '$publisher_connstr' PUBLICATION regress_pub WITH (connect=false); +)); Attaching only v13 and head patches, once we have a way forward I will send other patches as well. -- Regards, Dilip Kumar Google