pgsql: Limit checkpointer requests queue size

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема pgsql: Limit checkpointer requests queue size
Дата
Msg-id E1ug0Yz-000ytw-18@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Limit checkpointer requests queue size

If the number of sync requests is big enough, the palloc() call in
AbsorbSyncRequests() will attempt to allocate more than 1 GB of memory,
resulting in failure.  This can lead to an infinite loop in the checkpointer
process, as it repeatedly fails to absorb the pending requests.

This commit limits the checkpointer requests queue size to 10M items. In
addition to preventing the palloc() failure, this change helps to avoid long
queue processing time.

Also, this commit is for backpathing only.  The master branch receives
a more invasive yet comprehensive fix for this problem.

Discussion: https://postgr.es/m/db4534f83a22a29ab5ee2566ad86ca92%40postgrespro.ru
Backpatch-through: 13

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/13559de95383b493a6e6384dcb621947bb8bcc23

Modified Files
--------------
src/backend/postmaster/checkpointer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)


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