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

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>, Ronan Dunklau <ronan.dunklau@aiven.io>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-03-11T07:09:39Z
Lists: pgsql-hackers
On 10/03/2024 22:59, Thomas Munro wrote:
> On Mon, Mar 11, 2024 at 9:30 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>> Barring objections, I'll commit the attached.
> 
> +1

Pushed, thanks!

> I guess the comment for smgrreleaseall() could also be updated.  It
> mentions only PROCSIGNAL_BARRIER_SMGRRELEASE, but I think sinval
> overflow (InvalidateSystemCaches()) should also be mentioned?

I removed that comment; people can grep to find the callers.

>> Hmm, I'm not sure if we need even smgrreleaseall() here anymore. It's
>> not required for correctness AFAICS. We don't do it in single-rel
>> invalidation in RelationCacheInvalidateEntry() either.
> 
> I think we do, because we have missed sinval messages.  It's unlikely
> but a relfilenode might have been recycled, and we might have file
> descriptors that point to the unlinked files.  That is, there are new
> files with the same names and we need to open those ones.

Gotcha.

-- 
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.