Re: Spurious "apparent wraparound" via SimpleLruTruncate() rounding

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2021-01-12T08:49:53Z
Lists: pgsql-hackers
On Mon, Jan 11, 2021 at 11:22:05AM +0500, Andrey Borodin wrote:
> I'm marking patch as ready for committer.

Thanks.

> I can't tell should we backpatch insurance patch or not: it potentially fixes unknown bugs, and potentially contains unknown bugs. I can't reason because of such uncertainty. I've tried to look for any potential problem and as for now I see none. Chances are <slru-truncate-t-insurance-v5.patch> is doing code less error-prone.

What do you think of abandoning slru-truncate-t-insurance entirely?  As of
https://postgr.es/m/20200330052809.GB2324620@rfd.leadboat.com I liked the idea
behind it, despite its complicating the system for hackers and DBAs.  The
TruncateMultiXact() interaction rendered it less appealing.  In v14+, commit
cd5e822 mitigates the kind of bugs that slru-truncate-t-insurance mitigates,
further reducing the latter's value.  slru-truncate-t-insurance does mitigate
larger trespasses into unlink-eligible space, though.

> Fix <slru-truncate-modulo-v6.patch> certainly worth backpatching.

I'll push it on Saturday, probably.



Commits

  1. Prevent excess SimpleLruTruncate() deletion.

  2. Fix unlinking of SLRU segments.

  3. Defer flushing of SLRU files.

  4. Change XID and mxact limits to warn at 40M and stop at 3M.