Re: Failures in constraints regression test, "read only 0 of 8192 bytes"

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Thomas Munro <thomas.munro@gmail.com>, Tomas Vondra <tomas.vondra@enterprisedb.com>, Ronan Dunklau <ronan.dunklau@aiven.io>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-06-21T14:14:32Z
Lists: pgsql-hackers
On 21/06/2024 02:25, Heikki Linnakangas wrote:
> Hmm, looking closer, I think this might be a more appropriate place for
> the RelationCloseSmgr() call:
> 
>> 			/*
>> 			 * If it's a mapped relation, immediately update its rd_locator in
>> 			 * case its relfilenumber changed.  We must do this during phase 1
>> 			 * in case the relation is consulted during rebuild of other
>> 			 * relcache entries in phase 2.  It's safe since consulting the
>> 			 * map doesn't involve any access to relcache entries.
>> 			 */
>> 			if (RelationIsMapped(relation))
>> 				RelationInitPhysicalAddr(relation);
> 
> That's where we change the relfilenumber, before the
> RelationClearRelation() call.

Pushed a fix that way.

-- 
Heikki Linnakangas
Neon (https://neon.tech)




Commits

  1. Fix relcache invalidation when relfilelocator is updated

  2. Don't destroy SMgrRelations at relcache invalidation

  3. Add a new slot sync worker to synchronize logical slots.