Skip to content

Commit 141c609

Browse files
author
Vladimir Ershov
committed
fix register bgworker context
1 parent fb99fab commit 141c609

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/scheduler_manager.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1663,6 +1663,7 @@ int start_at_worker(scheduler_manager_ctx_t *ctx, int pos)
16631663
BgwHandleStatus status;
16641664
scheduler_manager_slot_t *item;
16651665
ResourceOwner prev_owner;
1666+
MemoryContext old;
16661667

16671668
prev_owner = CurrentResourceOwner;
16681669
CurrentResourceOwner = ResourceOwnerCreate(NULL, "pgpro_scheduler");
@@ -1699,15 +1700,18 @@ int start_at_worker(scheduler_manager_ctx_t *ctx, int pos)
16991700

17001701
CurrentResourceOwner = prev_owner;
17011702

1703+
old = MemoryContextSwitchTo(ctx->mem_ctx);
17021704
if(!RegisterDynamicBackgroundWorker(&worker, &(item->handler)))
17031705
{
17041706
elog(LOG, "Cannot register AT executor worker for db: %s",
17051707
shm_data->database);
17061708
dsm_detach(item->shared);
17071709
pfree(item);
17081710
ctx->at.slots[pos] = NULL;
1711+
MemoryContextSwitchTo(old);
17091712
return 0;
17101713
}
1714+
MemoryContextSwitchTo(old);
17111715
status = WaitForBackgroundWorkerStartup(item->handler, &(item->pid));
17121716
if(status != BGWH_STARTED)
17131717
{

0 commit comments

Comments
 (0)