Hi hackers,
> > Hm? MemoryContextDelete() unconditionally calls the
> > callbacks. ShutdownPostgres() calls AbortOutOfAnyTransaction(). So if there's
> > an ongoing transaction, we'll call the reset callbacks on TopMemoryContext and
> > its children.
>
> Hmm ... I'd forgotten that we'd reach AbortOutOfAnyTransaction in
> the FATAL code path. It does seem like any memory contexts below
> TopTransactionContext ought to get cleaned up then.
I wonder if this is a desired behavior. FATAL means a critical error
local to a given backend, but not affecting shared memory, right? Is
it generally safe to execute context memory callbacks having a FATAL
error?
> As you say, we really need more details to see what's happening here.
Yep, minimal steps to reproduce the issue would be much appreciated!
--
Best regards,
Aleksander Alekseev