Re: BUG #17103: WAL segments are not removed after exceeding max_slot_wal_keep_size

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: tgl@sss.pgh.pa.us, jeff.janes@gmail.com, mk@071.ovh, pgsql-bugs@lists.postgresql.org
Date: 2021-07-29T21:19:24Z
Lists: pgsql-bugs
On 2021-Jul-29, Kyotaro Horiguchi wrote:

> At Thu, 29 Jul 2021 16:20:38 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> > So it seems to me we need to explicitly prevent unexpected checkpoints
> > from happening maybe by enlarging max_wal_size temporily.
> 
> I ended up with the attached. It causes a checkpoint reliably exactly
> at the aimed timing without.

Thanks for looking into it.  The explanation makes sense, so I pushed
your patch and also fixed one outdated comment I noticed while reading
the related code.  I hope this commit will solve the problem ... it is
quite low probability, so we'll have to wait at least two weeks to make
any conclusion.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/



Commits

  1. Close yet another race condition in replication slot test code

  2. Make new replication slot test code even less racy

  3. Make new replication slot test code less racy

  4. Advance old-segment horizon properly after slot invalidation