Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
RekGRpth committed Dec 10, 2023
1 parent dc5f8fd commit 693bb0b
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 3 deletions.
1 change: 1 addition & 0 deletions include.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ SPIPlanPtr SPI_prepare_my(const char *src, int nargs, Oid *argtypes);
void appendBinaryStringInfoEscapeQuote(StringInfo buf, const char *data, int len, bool string, char escape, char quote);
void append_with_tabs(StringInfo buf, const char *str);
void initStringInfoMy(StringInfo buf);
void init_conf(bool dynamic);
void _PG_init(void);
void SPI_connect_my(const char *src);
void SPI_cursor_close_my(Portal portal);
Expand Down
3 changes: 2 additions & 1 deletion init.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,10 @@ void appendBinaryStringInfoEscapeQuote(StringInfo buf, const char *data, int len
if (!string && quote) appendStringInfoChar(buf, quote);
}

static void init_conf(bool dynamic) {
void init_conf(bool dynamic) {
BackgroundWorker worker = {0};
size_t len;
elog(DEBUG1, "dynamic = %s", dynamic ? "true" : "false");
if ((len = strlcpy(worker.bgw_function_name, "conf_main", sizeof(worker.bgw_function_name))) >= sizeof(worker.bgw_function_name)) ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("strlcpy %li >= %li", len, sizeof(worker.bgw_function_name))));
if ((len = strlcpy(worker.bgw_library_name, "pg_task", sizeof(worker.bgw_library_name))) >= sizeof(worker.bgw_library_name)) ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("strlcpy %li >= %li", len, sizeof(worker.bgw_library_name))));
if ((len = strlcpy(worker.bgw_name, "postgres pg_conf", sizeof(worker.bgw_name))) >= sizeof(worker.bgw_name)) ereport(WARNING, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("strlcpy %li >= %li", len, sizeof(worker.bgw_name))));
Expand Down
3 changes: 2 additions & 1 deletion task.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,10 +339,11 @@ void task_main(Datum main_arg) {
const char *application_name;
StringInfoData oid, schema_table;
elog(DEBUG1, "main_arg = %i", DatumGetInt32(main_arg));
if (!taskshared[DatumGetInt32(main_arg)].in_use) return;
task.shared = &taskshared[DatumGetInt32(main_arg)];
work.shared = &workshared[task.shared->slot];
on_shmem_exit(task_shmem_exit, main_arg);
if (!task.shared->in_use) return;
if (!work.shared->in_use) return;
BackgroundWorkerUnblockSignals();
work.data = quote_identifier(work.shared->data);
work.schema = quote_identifier(work.shared->schema);
Expand Down
5 changes: 4 additions & 1 deletion work.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,9 @@ static void work_shmem_exit(int code, Datum arg) {
}
work_finish(t);
}
if (!code) {
if (!ShutdownRequestPending) init_conf(true);
}
}

static void work_remote(Task *t) {
Expand Down Expand Up @@ -904,7 +907,6 @@ void work_main(Datum main_arg) {
long current_sleep = -1;
StringInfoData schema_table, schema_type;
elog(DEBUG1, "main_arg = %i", DatumGetInt32(main_arg));
if (!workshared[DatumGetInt32(main_arg)].in_use) return;
work.shared = &workshared[DatumGetInt32(main_arg)];
#ifdef GP_VERSION_NUM
Gp_role = GP_ROLE_DISPATCH;
Expand All @@ -914,6 +916,7 @@ void work_main(Datum main_arg) {
#endif
#endif
on_shmem_exit(work_shmem_exit, main_arg);
if (!work.shared->in_use) return;
pqsignal(SIGHUP, SignalHandlerForConfigReload);
pqsignal(SIGINT, work_idle);
BackgroundWorkerUnblockSignals();
Expand Down

0 comments on commit 693bb0b

Please sign in to comment.