From: Heikki Linnakangas Date: Fri, 21 Jun 2024 14:13:10 +0000 (+0300) Subject: Fix relcache invalidation when relfilelocator is updated X-Git-Tag: REL_17_BETA2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=441ef5e1badcc3695de4a865cffb30f0e5057893;p=thirdparty%2Fpostgresql.git Fix relcache invalidation when relfilelocator is updated In commit af0e7deb4a, I removed a call to RelationCloseSmgr(), because the dangling SMgrRelation was no longer an issue. However, we still need the call when the relation's relfilelocator changes, so that the new relfilelocator takes effect immediately. Reported-by: Alexander Lakhin Discussion: https://www.postgresql.org/message-id/987b1c8c-8c91-4847-ca0e-879f421680ff%40gmail.com --- diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 35dbb87ae3d..930cc03ee20 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -3060,7 +3060,10 @@ RelationCacheInvalidate(bool debug_discard) * map doesn't involve any access to relcache entries. */ if (RelationIsMapped(relation)) + { + RelationCloseSmgr(relation); RelationInitPhysicalAddr(relation); + } /* * Add this entry to list of stuff to rebuild in second pass.