Noah Misch <n...@leadboat.com> writes: > On Thu, Sep 03, 2015 at 11:04:11PM -0400, Tom Lane wrote: >> *************** AtSubAbort_Portals(SubTransactionId mySu
>> --- 909,966 ---- >> { >> Portal portal = hentry->portal; >> >> + /* Was it created in this subtransaction? */ >> if (portal->createSubid != mySubid) >> + { >> + /* No, but maybe it was used in this subtransaction? */ >> + if (portal->activeSubid == mySubid) >> + { > ... >> + if (portal->status == PORTAL_ACTIVE) >> + MarkPortalFailed(portal); > Do you have a test case that reaches this particular MarkPortalFailed() call? > My attempts stumbled over the fact that, before we reach here, each of the > three MarkPortalActive() callers will have already called MarkPortalFailed() > in its PG_CATCH block. ("make check" does not reach this call.) Offhand I think that's just belt-and-suspenders-too coding. As you say, we'd typically have failed active portals already before getting here. But the responsibility of this routine is to *guarantee* that no broken portals remain active, so I'd not want to remove this check. Do you have a particular reason for asking? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers