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)