pgsql: Move a few ResourceOwnerEnlarge() calls for safety and clarity.

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Move a few ResourceOwnerEnlarge() calls for safety and clarity.
Дата
Msg-id E1r0grf-004TbF-JU@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Move a few ResourceOwnerEnlarge() calls for safety and clarity.

These are functions where a lot of things happen between the
ResourceOwnerEnlarge and ResourceOwnerRemember calls. It's important
that there are no unrelated ResourceOwnerRemember calls in the code in
between, otherwise the reserved entry might be used up by the
intervening ResourceOwnerRemember and not be available at the intended
ResourceOwnerRemember call anymore. I don't see any bugs here, but the
longer the code path between the calls is, the harder it is to verify.

In bufmgr.c, there is a function similar to ResourceOwnerEnlarge,
ReservePrivateRefCountEntry(), to ensure that the private refcount
array has enough space. The ReservePrivateRefCountEntry() calls were
made at different places than the ResourceOwnerEnlargeBuffers()
calls. Move the ResourceOwnerEnlargeBuffers() and
ReservePrivateRefCountEntry() calls together for consistency.

Reviewed-by: Aleksander Alekseev, Michael Paquier, Julien Rouhaud
Reviewed-by: Kyotaro Horiguchi, Hayato Kuroda, Álvaro Herrera, Zhihong Yu
Reviewed-by: Peter Eisentraut, Andres Freund
Discussion: https://www.postgresql.org/message-id/cbfabeb0-cd3c-e951-a572-19b365ed314d%40iki.fi

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b70c2143bbbe291fe2b444150772972fa53972f1

Modified Files
--------------
src/backend/storage/buffer/bufmgr.c   | 49 ++++++++++++++++-------------------
src/backend/storage/buffer/localbuf.c |  2 ++
src/backend/utils/cache/catcache.c    |  5 ++--
3 files changed, 27 insertions(+), 29 deletions(-)


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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Don't install ldap_password_func in meson
Следующее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Call pqPipelineFlush from PQsendFlushRequest