On Mon, Jan 22, 2024 at 03:38:15PM -0600, Nathan Bossart wrote:
> On Mon, Jan 22, 2024 at 01:24:54PM -0800, Andres Freund wrote:
>> On 2024-01-22 15:19:36 -0600, Nathan Bossart wrote:
>>> I think this is because the autoprewarm state was moved to a DSM segment,
>>> and DSM segments are detached before the on_shmem_exit callbacks are called
>>> during process exit. Moving apw_detach_shmem to the before_shmem_exit list
>>> seems to resolve the crashes.
>>
>> That seems plausible. Would still be nice to have at least this test ensure
>> that the shutdown code works. Perhaps just a check of the control file after
>> shutdown, ensuring that the state is "shutdowned" vs crashed?
>
> I'll give that a try. I'll also expand the comment above the
> before_shmem_exit() call.
Here is a patch.
This might be a topic for another thread, but I do wonder whether we could
put a generic pg_controldata check in node->stop that would at least make
sure that the state is some sort of expected shut-down state. My first
thought is that it could be a tad expensive, but... maybe it wouldn't be
too bad.
--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com