pgsql: Prevent long-term memory leakage in autovacuum launcher.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Prevent long-term memory leakage in autovacuum launcher.
Дата
Msg-id E1oTUFZ-000o2N-BT@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Prevent long-term memory leakage in autovacuum launcher.

get_database_list() failed to restore the caller's memory context,
instead leaving current context set to TopMemoryContext which is
how CommitTransactionCommand() leaves it.  The callers both think
they are using short-lived contexts, for the express purpose of
not having to worry about cleaning up individual allocations.
The net effect therefore is that supposedly short-lived allocations
could accumulate indefinitely in the launcher's TopMemoryContext.

Although this has been broken for a long time, it seems we didn't
have any obvious memory leak here until v15's rearrangement of the
stats logic.  I (tgl) am not entirely convinced that there's no
other leak at all, though, and we're surely at risk of adding one
in future back-patched fixes.  So back-patch to all supported
branches, even though this may be only a latent bug in pre-v15.

Reid Thompson

Discussion: https://postgr.es/m/972a4e12b68b0f96db514777a150ceef7dcd2e0f.camel@crunchydata.com

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/0c599e748f2c81e415bb39567c4fd40a6bc64815

Modified Files
--------------
src/backend/postmaster/autovacuum.c | 3 +++
1 file changed, 3 insertions(+)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: pgsql: Derive freeze cutoff from nextXID, not OldestXmin.
Следующее
От: Bruce Momjian
Дата:
Сообщение: pgsql: doc: simplify WITH clause syntax in CREATE DATABASE