diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index d8ff8664fb..8b11cef1c0 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -372,11 +372,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;