Re: BF mamba failure
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Kouber Saparev <kouber@gmail.com>
Cc: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-09-17T03:32:40Z
Lists: pgsql-hackers
On Tue, Sep 16, 2025 at 02:45:03PM +0300, Kouber Saparev wrote: > На пт, 12.09.2025 г. в 3:37 Michael Paquier <michael@paquier.xyz> написа: >> With which process has this cascading standby been created? >> Does the workload of the primary involve a high consumption of OIDs >> for relations, say many temporary tables? > > Yes, we have around 150 entries added and deleted per second in pg_class, > and around 800 in pg_attribute. So something is actively creating and > dropping tables all the time. The number of relations would most likely matter, I doubt that pg_attribute contributes a lot in the frictions. One of the test scenarios I am running is exactly that: a bunch of CREATE/DROP tables running concurrently with backends in a cascading standby accessing them, while tweaking the OID generated in the control file to force wraparounds. I am failing to re-create your problem, for now at least. > > Another thing that may help is the WAL record history. Are you for > > example seeing attempts to drop twice the same pgstats entry in WAL > > records? Perhaps the origin of the problem is in this area. A > > refcount of 2 is relevant, of course. > > > > How could we dig into this, i.e. inspecting such attempts in the WAL > records? Yeah, with pg_walinspect or pg_waldump, but I doubt that you retain enough WAL history to be able to ping at something specific. One pattern I am looking for is duplicated drops initiated from the WAL records, when wraparound hits, or at least if there's a window small enough that two WAL records are generated and attempt to generate the same entry drop. That's just an assumption at this stage. > Is it enough to upgrade the replicas or we need to upgrade the primary as > well? That would be both. There are always reasons to update to the latest minor version of Postgres. See the release notes for a bunch of them, that's usually convincing enough especially with CVEs addressed. :) -- Michael
Commits
-
Add information about "generation" when dropping twice pgstats entry
- 769be67a3c7a 15.14 landed
- f770006928d0 16.10 landed
- bdda6ba30cbe 17.6 landed
- ab74ce4dc909 18.0 landed
- 84b32fd22830 19 (unreleased) landed
-
Fix race conditions with drop of reused pgstats entries
- 154c5b42a3d8 15.10 landed
- afa20845dd13 16.6 landed
- 1d6a03ea4146 17.2 landed
- 818119afccd3 18.0 landed