From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix DROP SUBSCRIPTION hang |
Date: | 2017-09-18 02:33:29 |
Message-ID: | E1dtlsH-0003h7-DF@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix DROP SUBSCRIPTION hang
When ALTER SUBSCRIPTION DISABLE is run in the same transaction before
DROP SUBSCRIPTION, the latter will hang because workers will still be
running, not having seen the DISABLE committed, and DROP SUBSCRIPTION
will wait until the workers have vacated the replication origin slots.
Previously, DROP SUBSCRIPTION killed the logical replication workers
immediately only if it was going to drop the replication slot, otherwise
it scheduled the worker killing for the end of the transaction, as a
result of 7e174fa793a2df89fe03d002a5087ef67abcdde8. This, however,
causes the present problem. To fix, kill the workers immediately in all
cases. This covers all cases: A subscription that doesn't have a
replication slot must be disabled. It was either disabled in the same
transaction, or it was already disabled before the current transaction,
but then there shouldn't be any workers left and this won't make a
difference.
Reported-by: Arseny Sher <a(dot)sher(at)postgrespro(dot)ru>
Discussion: https://www.postgresql.org/message-id/flat/87mv6av84w.fsf%40ars-thinkpad
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/8edacab209957520423770851351ab4013cb0167
Modified Files
--------------
src/backend/commands/subscriptioncmds.c | 19 +++++++-----
src/test/subscription/t/007_ddl.pl | 51 +++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 7 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Ashutosh Bapat | 2017-09-18 07:30:40 | Re: [COMMITTERS] pgsql: Expand partitioned table RTEs level by level, without flattening |
Previous Message | Michael Paquier | 2017-09-18 00:49:06 | Re: pgsql: Fix bogus size calculation introduced by commit cc5f81366. |