Closed
Description
CRC32 for pg_filenode.map
files calculates incorrectly.
Probably due to some polynom math magic with checksum in file.
Because of that incremental restore may break pg_catalog
relations, that rely on pg_filenode.map
, by erroneously reusing the old map in PGDATA due to false-positive crc match.
This condition is only possible if catalog relation was subjected to VACUUM FULL
, REINDEX
(in case of pg_catalog indexes) or any other operation that changes the relfilenode of relation. Note, that only limited number of catalog relations are relying on pg_filenode.map
.
Regular restore
and merge
are not affected.
Symptoms example:
ERROR: could not open file "base/12295/2703": No such file or directory