]> granicus.if.org Git - postgresql/commit
Improve memory management in autovacuum.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Sep 2017 17:28:16 +0000 (13:28 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Sep 2017 17:28:16 +0000 (13:28 -0400)
commit335f3d04e4c8dd495c4dd30ab1049b6fe8f25052
tree38859dc2a8dba157d433565849d716f496ff8b90
parentad51c6fb5708342e603d12a730bbc4e663bd637e
Improve memory management in autovacuum.c.

Invoke vacuum(), as well as "work item" processing, in the PortalContext
that do_autovacuum() has manufactured, which will be reset before each
such invocation.  This ensures cleanup of any memory leaked by these
operations.  It also avoids the rather dangerous practice of calling
vacuum() in a context that vacuum() itself will destroy while it runs.
There's no known live bug there, but it's not hard to imagine introducing
one if we leave it like this.

Tom Lane, reviewed by Michael Paquier and Alvaro Herrera

Discussion: https://postgr.es/m/13849.1506114543@sss.pgh.pa.us
src/backend/postmaster/autovacuum.c