diff --git a/src/backend/storage/ipc/polar_procpool.c b/src/backend/storage/ipc/polar_procpool.c index cb6223a99ae..bf92ac0931e 100644 --- a/src/backend/storage/ipc/polar_procpool.c +++ b/src/backend/storage/ipc/polar_procpool.c @@ -1006,9 +1006,11 @@ polar_reg_sub_task(polar_task_sched_ctl_t *ctl, uint32 i) StrNCpy(worker.bgw_type, ctl->sched->name, BGW_MAXLEN); worker.bgw_main_arg = (Datum)(ctl->sched); - RegisterDynamicBackgroundWorker(&worker, &handle); - - Assert(handle != NULL); + if (!RegisterDynamicBackgroundWorker(&worker, &handle)) + ereport(PANIC, + (errcode(ERRCODE_INSUFFICIENT_RESOURCES), + errmsg("registering dynamic bgworker failed"), + errhint("Consider increasing configuration parameter \"max_worker_processes\"."))); ctl->sub_proc[i].handle = handle; ctl->sub_proc[i].proc = NULL;