pgsql: Don't destroy SMgrRelations at relcache invalidation

Поиск
Список
Период
Сортировка
Искать
От
Heikki Linnakangas
Тема
pgsql: Don't destroy SMgrRelations at relcache invalidation
Дата
Msg-id
E1rjZmw-003BJJ-7C@gemulon.postgresql.org
Список
Don't destroy SMgrRelations at relcache invalidation

With commit 21d9c3ee4e, SMgrRelations remain valid until end of
transaction (or longer if they're "pinned"). Relcache invalidation can
happen in the middle of a transaction, so we must not destroy them at
relcache invalidation anymore.

This was revealed by failures in the 'constraints' test in buildfarm
animals using -DCLOBBER_CACHE_ALWAYS. That started failing with commit
8af2565248, which was the first commit that started to rely on an
SMgrRelation living until end of transaction.

Diagnosed-by: Tomas Vondra, Thomas Munro
Reviewed-by: Thomas Munro
Discussion: https://www.postgresql.org/message-id/CA%2BhUKGK%2B5DOmLaBp3Z7C4S-Yv6yoROvr1UncjH2S1ZbPT8D%2BZg%40mail.gmail.com

Branch
------
master

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

Modified Files
--------------
src/backend/storage/smgr/smgr.c    |  2 --
src/backend/utils/cache/relcache.c | 10 +++-------
2 files changed, 3 insertions(+), 9 deletions(-)

В списке pgsql-committers по дате отправления
От: David Rowley
Дата:
От: Heikki Linnakangas
Дата:
FAQ