Re: Theory about XLogFlush startup failures
Vadim Mikheev <vmikheev@sectorbase.com>
From: "Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
To: "'Tom Lane'" <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgreSQL.org
Date: 2002-01-23T23:39:16Z
Lists: pgsql-hackers
> So the failure-to-start-up problem can be blamed entirely on 7.1's > failure to do anything with LSN fields in pg_log pages. I was able to No, first reported problem can be blamed on RAM failures. > So I am still dissatisfied with doing elog(STOP) for this condition, > as I regard it as an overly strong reaction to corrupted data; > moreover, it does nothing to fix the problem and indeed gets in > the way of fixing the problem. Totally agreed but.. > I propose the attached patch. > What do you think? > ... > + if (XLByteLT(LogwrtResult.Flush, record)) > + elog(InRecovery ? NOTICE : ERROR, I suggest also to set some flag here if InRecovery, to elog(STOP DATA FILE(S) CORRUPTED! RESTORE DATA FROM BACKUP OR RESET WAL TO DUMP/MANUALLY FIX ERRORS - or something like that -:) - after all data buffers flushed. What's wrong with this? It's not Ok automatically restart knowing about errors in data. Vadim