From f34ed996af298d731551695da562d17be5d6b248 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 9 Jun 2017 09:47:52 -0400 Subject: [PATCH] Stop table sync workers when subscription relation entry is removed When a table sync worker is in waiting state and the subscription table entry is removed because of a concurrent subscription refresh, the worker could be left orphaned. To avoid that, explicitly stop the worker when the pg_subscription_rel entry is removed. Reported-by: Masahiko Sawada --- src/backend/commands/subscriptioncmds.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index 49737a9042..8ec8742480 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -600,6 +600,8 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data) RemoveSubscriptionRel(sub->oid, relid); + logicalrep_worker_stop(sub->oid, relid); + namespace = get_namespace_name(get_rel_namespace(relid)); ereport(NOTICE, (errmsg("removed subscription for table %s.%s", -- 2.13.1