Re: No Callbacks on FATAL
Aleksander Alekseev <aleksander@timescale.com>
From: Aleksander Alekseev <aleksander@timescale.com>
To: pgsql-hackers@postgresql.org
Cc: Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>,
Ed Behn <ed@behn.us>
Date: 2023-01-13T13:14:11Z
Lists: pgsql-hackers
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