diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-04-06 09:07:09 -0400 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-04-06 09:07:09 -0400 |
commit | c25304a945467f6edfcca10d7931b913776d066b (patch) | |
tree | e404b12f5a6d7f581c0e1ab263e3b93f305918c3 | |
parent | 2cd6520e78fe8bbb4ba38f6c7624c002aa8cc481 (diff) | |
download | postgresql-c25304a945467f6edfcca10d7931b913776d066b.tar.gz postgresql-c25304a945467f6edfcca10d7931b913776d066b.zip |
Improve messaging during logical replication worker startup
In case the subscription is removed before the worker is fully started,
give a specific error message instead of the generic "cache lookup"
error.
Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
-rw-r--r-- | src/backend/replication/logical/worker.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 93a42d9322c..b10857550a6 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -1553,14 +1553,20 @@ ApplyWorkerMain(Datum main_arg) ALLOCSET_DEFAULT_SIZES); StartTransactionCommand(); oldctx = MemoryContextSwitchTo(ApplyContext); - MySubscription = GetSubscription(MyLogicalRepWorker->subid, false); + + MySubscription = GetSubscription(MyLogicalRepWorker->subid, true); + if (!MySubscription) + { + ereport(LOG, + (errmsg("logical replication apply worker for subscription %u will not " + "start because the subscription was removed during startup", + MyLogicalRepWorker->subid))); + proc_exit(0); + } + MySubscriptionValid = true; MemoryContextSwitchTo(oldctx); - /* Setup synchronous commit according to the user's wishes */ - SetConfigOption("synchronous_commit", MySubscription->synccommit, - PGC_BACKEND, PGC_S_OVERRIDE); - if (!MySubscription->enabled) { ereport(LOG, @@ -1571,6 +1577,10 @@ ApplyWorkerMain(Datum main_arg) proc_exit(0); } + /* Setup synchronous commit according to the user's wishes */ + SetConfigOption("synchronous_commit", MySubscription->synccommit, + PGC_BACKEND, PGC_S_OVERRIDE); + /* Keep us informed about subscription changes. */ CacheRegisterSyscacheCallback(SUBSCRIPTIONOID, subscription_change_cb, |