Thread: Checksum error and VACUUM FULL

Checksum error and VACUUM FULL

From
Tatsuki Kadomoto
Date:

Hello, gurus,

I faced incorrect checksum on "global/pg_filenode.map" at the right timing "VACUUM FULL" is executed and session was aborted.
Aug 16 20:51:19 postgres[22329]: [2-1] FATAL:  relation mapping file "global/pg_filenode.map" contains incorrect checksum
Aug 16 20:51:19 postgres[22329]: [2-2] STATEMENT:  SELECT id,readbm,writebm,survbm,timeout FROM Users WHERE username='packetlogicd' AND password=md5('xxxxx')
I'm reading the comment in src/backend/utils/cache/relmapper.c .

===
Therefore mapped catalogs can only be relocated by operations such as VACUUM FULL and CLUSTER, which make no transactionally-significant changes: it must be safe for the new file to replace the old, even if the transaction itself aborts.
===

Does this comment mean it's expected to get this kind of checksum error if the timing is really bad?

Regards,
Tatsuki

Re: Checksum error and VACUUM FULL

From
Robert Haas
Date:
On Thu, Aug 25, 2016 at 5:45 AM, Tatsuki Kadomoto <tatsuki.kadomoto@proceranetworks.com> wrote:

I faced incorrect checksum on "global/pg_filenode.map" at the right timing "VACUUM FULL" is executed and session was aborted.

Aug 16 20:51:19 postgres[22329]: [2-1] FATAL:  relation mapping file "global/pg_filenode.map" contains incorrect checksum
Aug 16 20:51:19 postgres[22329]: [2-2] STATEMENT:  SELECT id,readbm,writebm,survbm,timeout FROM Users WHERE username='packetlogicd' AND password=md5('xxxxx')
I'm reading the comment in src/backend/utils/cache/relmapper.c .

===
Therefore mapped catalogs can only be relocated by operations such as VACUUM FULL and CLUSTER, which make no transactionally-significant changes: it must be safe for the new file to replace the old, even if the transaction itself aborts.
===

Does this comment mean it's expected to get this kind of checksum error if the timing is really bad?

I don't think so.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company