Re: BUG #17064: Parallel VACUUM operations cause the error "global/pg_filenode.map contains incorrect checksum"

Alexander Law <exclusion@gmail.com>

From: Alexander Lakhin <exclusion@gmail.com>
To: Thomas Munro <thomas.munro@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-06-23T03:00:01Z
Lists: pgsql-bugs
23.06.2021 05:29, Thomas Munro wrote:
> On Wed, Jun 23, 2021 at 12:50 PM Thomas Munro <thomas.munro@gmail.com> wrote:
>> repro
> Here's a quick-and-dirty repro -- just touch test-file and then run
> it.  It fails about 0.1% of its read loops on ext4, for me, but
> outputs nothing on other file systems and OSes I tried (XFS, FBSD UFS,
> APFS).  Seems a bit like there is a tendency for 64 byte (cache line?)
> granularity in the mashed data it prints out.
Yes, this repro fails for me too (on ext4).
11111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
11111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221111111111111111111111111111111122222222222222222222222222222222111111111111111111111111111111112222222222222222222222222222222211111111111111111111111111111111222222222222222222222222222222222222222222222222
11111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

But granularity is 16-byte. (I've seen the fail count 19763 out of
1000000 loops.)

Best regards,
Alexander




Commits

  1. Another fix to relmapper race condition.

  2. Prevent race condition while reading relmapper file.