pgsql: Avoid memory leakage when a series of subtransactions invoke

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Avoid memory leakage when a series of subtransactions invoke
Date: 2007-07-01 17:45:42
Message-ID: 20070701174542.AF8C19FB488@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Avoid memory leakage when a series of subtransactions invoke AFTER triggers
that are fired at end-of-statement (as is the normal case for foreign keys,
for example). In this situation the per-subxact deferred trigger context
is always empty when subtransaction exit is reached; so we could free it,
but were not doing so, leading to an intratransaction leak of 8K or more
per subtransaction. Per off-list example from Viatcheslav Kalinin
subsequent to bug #3418 (his original bug report omitted a foreign key
constraint needed to cause this leak).

Back-patch to 8.2; prior versions were not using per-subxact contexts
for deferred triggers, so did not have this leak.

Modified Files:
--------------
pgsql/src/backend/commands:
trigger.c (r1.214 -> r1.215)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/trigger.c.diff?r1=1.214&r2=1.215)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2007-07-01 17:45:50 pgsql: Avoid memory leakage when a series of subtransactions invoke
Previous Message Tom Lane 2007-07-01 16:25:34 Re: [COMMITTERS] pgsql: Improve logging of checkpoints.