Re: pgsql: Remove the restriction that the relmap must be 512 bytes. - Mailing list pgsql-committers

From Thomas Munro
Subject Re: pgsql: Remove the restriction that the relmap must be 512 bytes.
Date
Msg-id CA+hUKGLZtCTgp4NTWV-wGbR2Nyag71=EfYTKjDKnk+fkhuFMHw@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: Remove the restriction that the relmap must be 512 bytes.  (Michael Paquier <michael@paquier.xyz>)
Responses Re: pgsql: Remove the restriction that the relmap must be 512 bytes.
List pgsql-committers
On Wed, Jul 27, 2022 at 4:35 PM Michael Paquier <michael@paquier.xyz> wrote:
> On Tue, Jul 26, 2022 at 07:10:22PM +0000, Robert Haas wrote:
> > Remove the restriction that the relmap must be 512 bytes.

> The CI on Windows is blowing up here and there after something that
> looks to come from this commit, as of this backtrace:
> 00000000`007fe300 00000001`405c62dd     postgres!errfinish(
> char * filename = 0x00000001`40bf1513 "fd.c",
> int lineno = 0n756,
> char * funcname = 0x00000001`40bf14e0 "durable_rename")+0x41b
> [c:\cirrus\src\backend\utils\error\elog.c @ 683]

And here's what the error looks like:

2022-07-26 19:38:04.321 GMT [8020][client backend]
[pg_regress/vacuum][8/349:4527] PANIC:  could not rename file
"global/pg_filenode.map.tmp" to "global/pg_filenode.map": Permission
denied

Someone else still has the old file open, so we can't rename the new
one to its name?  On Windows that should have gone through pgrename()
in dirmod.c, which would retry 100 times with a 100ms sleep between.
Since every backend reads that file (I added an elog() and saw it 2289
times during make check), I guess you can run out of luck.

/me thinks



pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Add overflow protection for block-related data in WAL records
Next
From: Alexander Korotkov
Date:
Subject: pgsql: Remove Tuplesortstate.copytup function