Re: BUG #17103: WAL segments are not removed after exceeding max_slot_wal_keep_size
Jeff Janes <jeff.janes@gmail.com>
From: Jeff Janes <jeff.janes@gmail.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: Marcin Krupowicz <mk@071.ovh>,
pgsql-bugs <pgsql-bugs@lists.postgresql.org>
Date: 2021-07-15T16:11:07Z
Lists: pgsql-bugs
On Thu, Jul 15, 2021 at 1:22 AM Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote: > At Wed, 14 Jul 2021 19:10:26 -0400, Jeff Janes <jeff.janes@gmail.com> > wrote in > > On Tue, Jul 13, 2021 at 10:12 PM Kyotaro Horiguchi < > horikyota.ntt@gmail.com> > > wrote: > > > Useless WAL files will be removd after a checkpoint runs. > > > > > > > They should be, but they are not. That is the bug. They just hang > > around, checkpoint after checkpoint. Some of them do get cleaned up, to > > make up for new ones created during that cycle. It treats > > max_slot_wal_keep the same way it treats wal_keep_size (but only if a > > "lost" slot is hanging around). If you drop the lost slot, only then > does > > it remove all the accumulated WAL at the next checkpoint. > > Thanks! I saw the issue here. Some investigation showd me a doubious > motion of XLogCtl->repliationSlotMinLSN. Slot invalidation is > forgetting to recalculate it and that misbehavior retreats the segment > horizon. > > So the attached worked for me. I'll repost the polished version > including test. > Thank you. That works for me. But I did not test on Windows. * Some slots may have been gone, "been invalidated" reads better than "been gone", and matches the wording used elsewhere. Cheers, Jeff
Commits
-
Close yet another race condition in replication slot test code
- 41d27ee7b870 13.4 landed
- f951f6f69c7e 14.0 landed
- ce197e91d02c 15.0 landed
-
Make new replication slot test code even less racy
- ce413eba4116 13.4 landed
- 1e8751380836 14.0 landed
- 0d2cb6b2bbc3 15.0 landed
-
Make new replication slot test code less racy
- d8f3b021c618 14.0 landed
- 8589299e03ff 15.0 landed
- 7099ba058035 13.4 landed
-
Advance old-segment horizon properly after slot invalidation
- ead9e51e8236 15.0 landed
- e5bcbb10707b 14.0 landed
- 866237a6fa01 13.4 landed