On Tue, Apr 2, 2013 at 10:08 PM, Jeff Janes <jeff.ja...@gmail.com> wrote:
> This commit introduced a problem with wal_keep_segments: > > commit dfda6ebaec6763090fb78b458a979b558c50b39b > The problem seems to be that the underflow warned about is happening, because the check to guard it was checking the wrong thing. However, I don't really understand KeepLogSeg. It seems like segno, and hence recptr, don't actually serve any purpose. Cheers, Jeff diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 2f9209f..3643be8 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -8264,7 +8264,7 @@ KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo) XLByteToSeg(recptr, segno); /* avoid underflow, don't go below 1 */ - if (segno <= wal_keep_segments) + if (*logSegNo <= wal_keep_segments) segno = 1; else segno = *logSegNo - wal_keep_segments;