pgsql: Fix memory leak when de-toasting compressed values in VACUUM FUL
От | Michael Paquier |
---|---|
Тема | pgsql: Fix memory leak when de-toasting compressed values in VACUUM FUL |
Дата | |
Msg-id | E1llPbb-0006xS-Cu@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix memory leak when de-toasting compressed values in VACUUM FULL/CLUSTER VACUUM FULL and CLUSTER can be used to enforce the use of the existing compression method of a toastable column if a value currently stored is compressed with a method that does not match the column's defined method. The code in charge of decompressing and recompressing toast values at rewrite left around the detoasted values, causing an accumulation of memory allocated in TopTransactionContext. When processing large relations, this could cause the system to run out of memory. The detoasted values are not needed once their tuple is rewritten, and this commit ensures that the necessary cleanup happens. Issue introduced by bbe0a81d. The comments of the area are reordered a bit while on it. Reported-by: Andres Freund Analyzed-by: Andres Freund Author: Michael Paquier Reviewed-by: Dilip Kumar Discussion: https://postgr.es/m/20210521211929.pcehg6f23icwstdb@alap3.anarazel.de Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/fb0f5f0172edf9f63c8f70ea9c1ec043b61c770e Modified Files -------------- src/backend/access/heap/heapam_handler.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-)
В списке pgsql-committers по дате отправления: