Re: shmem_startup_hook called twice on Windows

Sami Imseih <samimseih@gmail.com>

From: Sami Imseih <samimseih@gmail.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-08-15T15:36:47Z
Lists: pgsql-hackers
Sorry my last reply got mangled for some reason. Here it is again.

> > 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.

But that could potentially be dangerous if code in the startup hook
gets re-executed?
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:
>
> 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?

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



Commits

  1. Fix documentation for shmem_startup_hook.

  2. test_slru: Fix LWLock tranche allocation in EXEC_BACKEND builds.

  3. doc: Reorganize section for shared memory and LWLocks.

  4. Refactor CreateSharedMemoryAndSemaphores