From 773a3df5331df8e6b90493a5829905be52c71a3c Mon Sep 17 00:00:00 2001 From: Bharath Rupireddy Date: Sat, 26 Mar 2022 05:42:52 +0000 Subject: [PATCH v2] Add comment about startup process getting procState array slot --- src/backend/storage/ipc/sinvaladt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c index 68e7160b30..92d2f50dce 100644 --- a/src/backend/storage/ipc/sinvaladt.c +++ b/src/backend/storage/ipc/sinvaladt.c @@ -205,6 +205,15 @@ SInvalShmemSize(void) Size size; size = offsetof(SISeg, procState); + + /* + * In Hot Standby mode, startup process requests for a free procSatate + * array slot, see InitRecoveryTransactionEnvironment(). Even though + * MaxBackends doesn't account for the startup process, it is guaranteed to + * get a free slot. This is because autovacuum launcher and worker + * processes are not started in Hot Standby mode, which MaxBackends would + * have already accounted for. + */ size = add_size(size, mul_size(sizeof(ProcState), GetMaxBackends())); return size; -- 2.25.1