From: Tom Lane Date: Sun, 18 Mar 2001 00:30:27 +0000 (+0000) Subject: Make sure ControlFile logId/logSeg don't go backwards (barely possible given a X-Git-Tag: REL7_1~162 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae293d33cfed8e0cfc6b6ceca470ef07134cd534;p=postgresql Make sure ControlFile logId/logSeg don't go backwards (barely possible given a slow backend, if we update unconditionally as the code did before). --- diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 5bbc4812ff..9a841a4e3a 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.60 2001/03/17 20:54:13 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.61 2001/03/18 00:30:27 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1003,8 +1003,9 @@ XLogWrite(XLogwrtRqst WriteRqst) /* update pg_control, unless someone else already did */ SpinAcquire(ControlFileLockId); - if (ControlFile->logId != openLogId || - ControlFile->logSeg != openLogSeg + 1) + if (ControlFile->logId < openLogId || + (ControlFile->logId == openLogId && + ControlFile->logSeg < openLogSeg + 1)) { ControlFile->logId = openLogId; ControlFile->logSeg = openLogSeg + 1;