Skip to content

pg_filenode.map and crc #320

Closed
Closed
@gsmolk

Description

@gsmolk

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions