From: | Sami Imseih <samimseih(at)gmail(dot)com> |
---|---|
To: | Nathan Bossart <nathandbossart(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: shmem_startup_hook called twice on Windows |
Date: | 2025-08-15 15:33:31 |
Message-ID: | CAA5RZ0t0qbTT5y6O7kCRh3pvgTOAh8sDe=Z+uQK2+g8HBGmdnw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> While working on a related area, I noticed that shmem_startup_hook
> is called twice under EXEC_BACKEND.
>
> The first call occurs in CreateSharedMemoryAndSemaphores() during
> postmaster startup (!IsUnderPostmaster), which is expected.
>
> The second call happens in AttachSharedMemoryStructs() (when
> EXEC_BACKEND is defined), and this occurs in normal backends
> (IsUnderPostmaster).
>
> The second call does not seem correct. The startup hook that should
> only run during
> postmaster initialization, AFAIK.
>
> Blame shows that this change was introduced in commit 69d903367c,
> but I could not determine the rationale from the discussion,
> so it may have been an oversight.
I think the startup hook must run in each backend for EXEC_BACKEND, else we
won't properly initialize pointers to shared memory in that case,
right? I guess the
doc below is giving a vague warning that one should be careful what they
put in that hook.
> I added the following wording in commit 964152c:
> IIUC commit 69d9033 actually makes that inaccurate for the non-EXEC_BACKEND
> case. Presumably this is okay because we don't need to re-initialize
> pointers to shmem when forking. I must've missed this change when updating
> the documentation.
Thanks, I missed the doc update. Yes, that is inconsistent between platforms,
and if we must live with this behavior, should the doc give a bigger warning
about the code that goes in that hook?
--
Sami
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2025-08-15 15:35:06 | Re: About Custom Aggregates, C Extensions and Memory |
Previous Message | Nathan Bossart | 2025-08-15 15:20:00 | Re: shmem_startup_hook called twice on Windows |