On Mon, 2008-09-29 at 12:14 -0400, Tom Lane wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
> > * Might we make AbortTransaction critical just as far as the
> > END_CRIT_SECTION after XLogInsert in RecordTransactionAbort(), but no
> > further? Don't expect yes, but seems worth recording thoughts.
>
> The problem is that pretty much everything that proc_exit runs would
> have to become critical, AFAICS. And a lot of that code is explicitly
> intended not to be critical --- that's why we split it up into multiple
> proc_exit callbacks. If one fails we pick up with the next, after a
> recursive call to elog().
OK...next idea. If we didn't PANIC, then Postmaster knows about child
death and fumbles around with the ProcArray.
Will it be OK to simply WAL log ProcArrayAdd() and ProcArrayRemove()?
Methinks postmaster can't do this. But might be able to ask somebody
else to do it for him?
The next person to run ProcArrayAdd() could be left a message to say
last user of this proc index didn't clean up and we need to log it. That
way we can WAL log the ProcArrayRemove() and the ProcArrayAdd() in one
message.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support