From:
Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To:
Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc:
Simon Riggs <simon(at)2ndquadrant(dot)com>,
Aidan Van Dyk <aidan(at)highrise(dot)ca>,
PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: Re: [COMMITTERS] pgsql: Make standby server continuously
retry restoring the next WAL
Date:
2010-03-24 12:31:06
Message-ID:
4BAA060A.2020000@enterprisedb.com (view raw or flat )
Thread:
2010-01-27 15:27:51 from heikki(at)postgresql(dot)org (Heikki Linnakangas)
2010-02-10 05:05:55 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-02-10 07:32:48 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-10 09:19:01 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-02-10 13:45:00 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-02-10 16:53:34 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 10:37:37 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 12:22:16 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 12:27:28 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 12:44:09 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 13:06:39 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 13:28:51 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 13:46:56 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 14:01:18 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-02-11 14:17:48 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 14:42:04 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-02-11 17:04:41 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 17:31:54 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-02-11 18:11:38 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 18:22:44 from "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
2010-02-11 19:45:13 from Garick Hamlin <ghamlin(at)isc(dot)upenn(dot)edu>
2010-02-11 18:08:24 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-02-11 18:14:12 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-12 07:37:40 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 17:29:33 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 18:11:01 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-18 11:37:18 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-17 10:35:37 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-17 10:49:11 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-18 14:27:59 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-19 08:52:04 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-19 11:37:08 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-19 12:43:34 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-03-19 12:50:34 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-19 13:28:48 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-03-19 13:44:53 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-23 07:17:53 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-24 12:31:06 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-24 13:20:45 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-24 13:36:33 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-25 12:55:42 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-25 13:43:53 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-03-26 05:24:35 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-30 16:28:28 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-31 02:01:40 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-25 12:48:27 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-24 23:23:01 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 02:08:06 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-03-25 02:14:37 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-03-25 08:11:45 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-25 08:23:47 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 10:26:25 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-25 10:47:07 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-25 19:48:06 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 08:08:11 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 10:15:15 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-03-25 19:45:22 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 08:22:55 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-03-25 10:05:37 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 13:41:15 from Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
2010-02-11 13:50:50 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 13:55:56 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 14:17:14 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 14:22:54 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 14:38:40 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-11 15:21:13 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-11 15:29:38 from Euler Taveira de Oliveira <euler(at)timbira(dot)com>
2010-02-11 14:55:11 from Greg Smith <greg(at)2ndquadrant(dot)com>
2010-02-12 05:38:32 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-02-12 12:51:20 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-12 13:10:21 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-12 15:47:42 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-02-12 16:10:05 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-02-15 06:29:57 from Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
2010-02-12 14:34:29 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-02-12 17:25:02 from Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
2010-02-12 17:47:49 from Greg Stark <stark(at)mit(dot)edu>
Lists:
pgsql-committers pgsql-docs pgsql-hackers
Fujii Masao wrote:
> But in the current (v8.4 or before) behavior, recovery ends normally
> when an invalid record is found in an archived WAL file. Otherwise,
> the server would never be able to start normal processing when there
> is a corrupted archived file for some reasons. So, that invalid record
> should not be treated as a PANIC if the server is not in standby mode
> or the trigger file has been created. Thought?
Hmm, true, this changes behavior over previous releases. I tend to think
that it's always an error if there's a corrupt file in the archive,
though, and PANIC is appropriate. If the administrator wants to start up
the database anyway, he can remove the corrupt file from the archive and
place it directly in pg_xlog instead.
> When I tested the patch, the following PANIC error was thrown in the
> normal archive recovery. This seems to derive from the above change.
> The detail error sequence:
> 1. In ReadRecord(), emode was set to PANIC after 00000001000000000000000B
> was read.
> 2. 00000001000000000000000C including the contrecord tried to be read
> by using the emode (= PANIC). But since 00000001000000000000000C did
> not exist, PANIC error was thrown.
>
> -----------------
> LOG: restored log file "00000001000000000000000B" from archive
> cp: cannot stat `../data.arh/00000001000000000000000C': No such file
> or directory
> PANIC: could not open file "pg_xlog/00000001000000000000000C" (log
> file 0, segment 12): No such file or directory
> LOG: startup process (PID 17204) was terminated by signal 6: Aborted
> LOG: terminating any other active server processes
> -----------------
Thanks. That's easily fixable (applies over the previous patch):
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -3773,7 +3773,7 @@ retry:
pagelsn.xrecoff = 0;
}
/* Wait for the next page to become available */
- if (!XLogPageRead(&pagelsn, emode, false, false))
+ if (!XLogPageRead(&pagelsn, emode_arg, false, false))
return NULL;
/* Check that the continuation record looks valid */
Perhaps the emode/emode_arg convention is a bit hard to read.
I'll go through the patch myself once more, and commit later today or
tomorrow if now new issues crop up.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
In response to
Responses
pgsql-docs by date
Next :From: Fujii MasaoDate: 2010-03-24 13:20:45
Subject : Re: Re: [COMMITTERS] pgsql: Make standby server continuously retry restoring the next WAL
Previous :From : Fujii MasaoDate : 2010-03-23 07:17:53
Subject : Re: Re: [COMMITTERS] pgsql: Make standby server continuously retry restoring the next WAL
pgsql-hackers by date
Next :From: Fujii MasaoDate: 2010-03-24 12:34:57
Subject : Re: Re: [COMMITTERS] pgsql: Add connection messages for streaming replication.
Previous :From : Gokulakannan SomasundaramDate : 2010-03-24 12:18:11
Subject : Re: Performance Improvement for Unique Indexes
pgsql-committers by date
Next :From: Fujii MasaoDate: 2010-03-24 12:34:57
Subject : Re: Re: [COMMITTERS] pgsql: Add connection messages for streaming replication.
Previous :From : Simon RiggsDate : 2010-03-24 11:52:10
Subject : Re: Re: [COMMITTERS] pgsql: Add connection messages for
streaming replication.