Heikki Linnakangas <hlinnakangas@vmware.com> writes:
> Ok, I fixed the issues that the assertion fixed. I also committed a
> patch to add the assertion itself; let's see if the buildfarm finds more
> cases that violate the rule.
> It ignores the checkpointer, because it's known to violate the rule,
... uh, isn't that a bug to be fixed?
> and
> allocations in ErrorContext, which is used during error recovery, e.g if
> you indeed PANIC while in a critical section for some other reason.
Yeah, I realized we'd have to do something about elog's own allocations.
Not sure if a blanket exemption for ErrorContext is the best way. I'd
been thinking of having a way to turn off the complaint once processing
of an elog(PANIC) has started.
> I didn't backpatch this.
Agreed.
BTW, I'm pretty sure you added some redundant assertions in mcxt.c.
eg, palloc does not need its own copy.
regards, tom lane