On Mon, Aug 2, 2021 at 2:18 PM Bossart, Nathan <bossa...@amazon.com> wrote: > I just encountered the same thing, so I am bumping this thread. I was > trying to use MaxBackends in a call to RequestAddinShmemSpace() in a > _PG_init() function for a module, but since MaxBackends is not yet > initialized, you essentially need to open-code InitializeMaxBackends() > instead. > > I think the comments about needing to register background workers > before initializing MaxBackends have been incorrect since the addition > of max_worker_processes in v9.4 (6bc8ef0b). Furthermore, I think the > suggested reordering is a good idea because it is not obvious that > MaxBackends will be uninitialized in _PG_init(), and use-cases like > the RequestAddinShmemSpace() one are not guaranteed to fail when > MaxBackends is used incorrectly (presumably due to the 100 KB buffer > added in CreateSharedMemoryAndSemaphores()). > > I've attached a new version of the proposed patch with some slight > adjustments and an attempt at a commit message.
I think this is a good idea. Anyone object? -- Robert Haas EDB: http://www.enterprisedb.com