From d64e6468f489effec356ce3501c0f226ac1cfcc0 Mon Sep 17 00:00:00 2001 From: Amit Kapila Date: Wed, 7 Jun 2023 09:19:17 +0530 Subject: [PATCH] Reload configuration more frequently in apply worker. The apply worker was not reloading the configuration while processing messages if there is a continuous flow of messages from upstream. It was also not reloading the configuration if there is a change in the configuration after it has waited for the message and before receiving the new replication message. This can lead to failure in tests because we expect that after reload, the behavior of apply worker to respect the changed GUCs. We found this while analyzing a rare buildfarm failure. Author: Hou Zhijie Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/OS0PR01MB5716AF9079CC0755CD015322947E9@OS0PR01MB5716.jpnprd01.prod.outlook.com --- src/backend/replication/logical/worker.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 78926f8647b..0ee764d68f1 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -3562,6 +3562,12 @@ LogicalRepApplyLoop(XLogRecPtr last_received) int c; StringInfoData s; + if (ConfigReloadPending) + { + ConfigReloadPending = false; + ProcessConfigFile(PGC_SIGHUP); + } + /* Reset timeout. */ last_recv_timestamp = GetCurrentTimestamp(); ping_sent = false;