pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Move a few ResourceOwnerEnlarge() calls for safety and clarity.
Date: Wed, 08 Nov 2023 11:36:56 +0000
Message-ID: <E1r0grf-004TbF-JU@gemulon.postgresql.org> (raw)

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(-)



Message-ID: <E1r0grf-004TbF-JU@gemulon.postgresql.org>
Permalink:  ../E1r0grf-004TbF-JU@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1r0grf-004TbF-JU@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: heikki.linnakangas@iki.fi, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Move a few ResourceOwnerEnlarge() calls for safety and clarity.
  In-Reply-To: <E1r0grf-004TbF-JU@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox