Hi, On 2022-03-25 11:50:48 -0400, Tom Lane wrote: > Robert Haas <robertmh...@gmail.com> writes: > > ... It's not > > like a 16-bit checksum was state-of-the-art even when we introduced > > it. We just did it because we had 2 bytes that we could repurpose > > relatively painlessly, and not any larger number. And that's still the > > case today, so at least in the short term we will have to choose some > > other solution to this problem. > > Indeed. I propose the attached, which also fixes the unsafe use > of seek() alongside syswrite(), directly contrary to what "man perlfunc" > says to do.
That looks reasonable. Although I wonder if we loose something by not testing the influence of the rest of the block - but I don't really see anything. The same code also exists in src/bin/pg_basebackup/t/010_pg_basebackup.pl, which presumably has the same collision risks. Perhaps we should put a function into Cluster.pm and use it from both? Greetings, Andres Freund