Received: from localhost (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 4AA5365029F for ; Mon, 17 Nov 2008 10:54:33 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 74795-01 for ; Mon, 17 Nov 2008 10:54:29 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.174]) by mail.postgresql.org (Postfix) with ESMTP id 57BD96501F4 for ; Mon, 17 Nov 2008 10:54:18 -0400 (AST) Received: by ug-out-1314.google.com with SMTP id k40so424306ugc.7 for ; Mon, 17 Nov 2008 06:54:16 -0800 (PST) Received: by 10.67.123.1 with SMTP id a1mr1321535ugn.42.1226933656339; Mon, 17 Nov 2008 06:54:16 -0800 (PST) Received: from ?80.222.79.63? (dsl-hkibrasgw2-fe4fde00-63.dhcp.inet.fi [80.222.79.63]) by mx.google.com with ESMTPS id 18sm4287303ugk.47.2008.11.17.06.54.13 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 17 Nov 2008 06:54:14 -0800 (PST) Message-ID: <49218594.5040000@enterprisedb.com> Date: Mon, 17 Nov 2008 16:54:12 +0200 Organization: EnterpriseDB User-Agent: Mozilla-Thunderbird 2.0.0.16 (X11/20080724) MIME-Version: 1.0 To: Simon Riggs CC: pgsql-hackers Subject: Re: [PATCHES] Infrastructure changes for recovery (v8) References: <1222815151.4445.1397.camel@ebony.2ndQuadrant> <48EC9CC5.6060803@enterprisedb.com> <1223468660.4747.294.camel@ebony.2ndQuadrant> <1223472898.4747.310.camel@ebony.2ndQuadrant> In-Reply-To: <1223472898.4747.310.camel@ebony.2ndQuadrant> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit From: Heikki Linnakangas X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200811/1145 X-Sequence-Number: 127857 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