postgres.git / summary / log / commit / refs

commit    ddd7b22b225ae41d16ceb218b387645cb9becfdc
Author:   Peter Eisentraut <peter_e@gmx.net>
Date:     Fri Jun 09 13:47:52 2017 +0000

    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 <sawada.mshk@gmail.com>


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 49737a90420..8ec87424802 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", [parent: eab86897bd8c]