postgres.git / summary / log / commit / refs

commit    82d4a17a17508a4e6ff9038d81a7dfb9f19e104a
Author:   Amit Kapila <akapila@postgresql.org>
Date:     Tue Apr 19 03:38:05 2022 +0000
First released in: 15.0, 10.21, 11.16, 12.11, 13.7, 14.3

    Fix the check to limit sync workers.
    
    We don't allow to invoke more sync workers once we have reached the sync
    worker limit per subscription. But the check to enforce this also doesn't
    allow to launch an apply worker if it gets restarted.
    
    This code was introduced by commit de43897122 but we caught the problem
    only with the test added by recent commit c91f71b9dc which started failing
    occasionally in the buildfarm.
    
    As per buildfarm.
    Diagnosed-by: Amit Kapila, Masahiko Sawada, Tomas Vondra
    Author: Amit Kapila
    Backpatch-through: 10
    Discussion: https://postgr.es/m/CAH2L28vddB_NFdRVpuyRBJEBWjz4BSyTB=_ektNRH8NJ1jf95g@mail.gmail.com
    	    https://postgr.es/m/f90d2b03-4462-ce95-a524-d91464e797c8@enterprisedb.com


src/backend/replication/logical/launcher.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 0a34d269859..50993765f2f 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -360,11 +360,11 @@ retry: } /* - * If we reached the sync worker limit per subscription, just exit - * silently as we might get here because of an otherwise harmless race - * condition. + * We don't allow to invoke more sync workers once we have reached the sync + * worker limit per subscription. So, just return silently as we might get + * here because of an otherwise harmless race condition. */ - if (nsyncworkers >= max_sync_workers_per_subscription) + if (OidIsValid(relid) && nsyncworkers >= max_sync_workers_per_subscription) { LWLockRelease(LogicalRepWorkerLock); return; [parent: 69cefb3fb837]