Thomas Munro <thomas.munro@gmail.com> writes:
> In CommitTransaction() there is a stretch of code beginning s->state =
> TRANS_COMMIT and ending s->state = TRANS_DEFAULT, from which we call
> out to various subsystems' AtEOXact_XXX() functions. There is no way
> to roll back in that state, so anything that throws ERROR from those
> routines is going to get something much like $SUBJECT. Hmm, we'd know
> which exact code path got that EIO from your smoldering core if we'd
> put an explicit critical section there (if we're going to PANIC
> anyway, it might as well not be from a different stack after
> longjmp()...).
+1, there's basically no hope of debugging this sort of problem
as things stand.
regards, tom lane