Re: Failures in constraints regression test, "read only 0 of 8192 bytes" - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: Failures in constraints regression test, "read only 0 of 8192 bytes"
Date
Msg-id 680fafbe-3422-457d-95c2-90f9aa9ac592@iki.fi
Whole thread Raw
In response to Re: Failures in constraints regression test, "read only 0 of 8192 bytes"  (Alexander Lakhin <exclusion@gmail.com>)
Responses Re: Failures in constraints regression test, "read only 0 of 8192 bytes"
List pgsql-hackers
On 19/06/2024 23:00, Alexander Lakhin wrote:
> Please look at a new anomaly, that I've discovered in master.
> 
> ...
> 
> triggers a segfault:
> 2024-06-19 19:22:49.009 UTC [1607210:6] LOG:  server process (PID 1607671) was terminated by signal 11: Segmentation
fault
> 
> ...
> 
> server.log might also contain:
> 2024-06-19 19:25:38.060 UTC [1618682:5] psql ERROR:  could not read blocks 3..3 in file "base/28531/28840": read only
0
> of 8192 bytes

Thanks for the report! I was not able to reproduce the segfault, but I 
do see the "could not read blocks" error very quickly with the script.

In commit af0e7deb4a, I removed the call to RelationCloseSmgr() from 
RelationCacheInvalidate(). I thought it was no longer needed, because we 
no longer free the underlying SmgrRelation.

However, it meant that if the relfilenode of the relation was changed, 
the relation keeps pointing to the SMgrRelation of the old relfilenode. 
So we still need the RelationCloseSmgr() call, in case the relfilenode 
has changed.

Per attached patch.

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

Attachment

pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: pg_combinebackup --clone doesn't work
Next
From: Michael Paquier
Date:
Subject: Re: Pluggable cumulative statistics