pgsql-server: PortalRun must guard against the possibility that the
| От | tgl@svr1.postgresql.org (Tom Lane) |
|---|---|
| Тема | pgsql-server: PortalRun must guard against the possibility that the |
| Дата | |
| Msg-id | 20041004215215.5EB4132A17A@svr1.postgresql.org обсуждение |
| Список | pgsql-committers |
Log Message:
-----------
PortalRun must guard against the possibility that the portal it's
running contains VACUUM or a similar command that will internally start
and commit transactions. In such a case, the original caller values of
CurrentMemoryContext and CurrentResourceOwner will point to objects that
will be destroyed by the internal commit. We must restore these pointers
to point to the newly-manufactured transaction context and resource owner,
rather than possibly pointing to deleted memory.
Also tweak xact.c so that AbortTransaction and AbortSubTransaction
forcibly restore a sane value for CurrentResourceOwner, much as they
have always done for CurrentMemoryContext. I'm not certain this is
necessary but I'm feeling paranoid today.
Responds to Sean Chittenden's bug report of 4-Oct.
Modified Files:
--------------
pgsql-server/src/backend/access/transam:
xact.c (r1.190 -> r1.191)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/access/transam/xact.c.diff?r1=1.190&r2=1.191)
pgsql-server/src/backend/tcop:
pquery.c (r1.87 -> r1.88)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/tcop/pquery.c.diff?r1=1.87&r2=1.88)
В списке pgsql-committers по дате отправления: