This comment in XLogFlush is no longer accurate:

         * The current approach is to ERROR under normal conditions, but only
         * WARNING during recovery, so that the system can be brought up even if
         * there's a corrupt LSN.  Note that for calls from xact.c, the ERROR 
will
         * be promoted to PANIC since xact.c calls this routine inside a 
critical
         * section.  However, calls from bufmgr.c are not within critical 
sections
         * and so we will not force a restart for a bad LSN on a data page.
         */
        if (XLByteLT(LogwrtResult.Flush, record))
                elog(ERROR,
                "xlog flush request %X/%X is not satisfied --- flushed only to 
%X/%X",
                         record.xlogid, record.xrecoff,
                         LogwrtResult.Flush.xlogid, LogwrtResult.Flush.xrecoff);

Because of this hunk:

***************
*** 1822,1828 **** XLogFlush(XLogRecPtr record)
         * and so we will not force a restart for a bad LSN on a data page.
         */
        if (XLByteLT(LogwrtResult.Flush, record))
!               elog(InRecovery ? WARNING : ERROR,
                "xlog flush request %X/%X is not satisfied --- flushed only to 
%X/%X",
                         record.xlogid, record.xrecoff,
                         LogwrtResult.Flush.xlogid, LogwrtResult.Flush.xrecoff);
--- 1874,1880 ----
         * and so we will not force a restart for a bad LSN on a data page.
         */
        if (XLByteLT(LogwrtResult.Flush, record))
!               elog(ERROR,
                "xlog flush request %X/%X is not satisfied --- flushed only to 
%X/%X",
                         record.xlogid, record.xrecoff,
                         LogwrtResult.Flush.xlogid, LogwrtResult.Flush.xrecoff);

I'm not sure what the most robust behavior would be.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to