From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
Cc: | Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [BUG?] lag of minRecoveryPont in archive recovery |
Date: | 2012-12-10 18:04:51 |
Message-ID: | CAHGQGwEi6Q6h65nVzBngaCR=Vse03-io2_7VFrC9dWKnNoa15w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Dec 11, 2012 at 1:33 AM, Heikki Linnakangas
<hlinnakangas(at)vmware(dot)com> wrote:
> On 10.12.2012 13:50, Heikki Linnakangas wrote:
>>
>> So I'd say we should update minRecoveryPoint first, then
>> truncate/delete. But we should still keep the XLogFlush() at the end of
>> xact_redo_commit_internal(), for the case where files/directories are
>> created. Patch attached.
Sounds reasonable.
> Committed and backpatched that. Attached is a script I used to reproduce
> this problem, going back to 8.4.
Thanks!
Unfortunately I could reproduce the problem even after that commit.
Attached is the script I used to reproduce the problem.
The cause is that CheckRecoveryConsistency() is called before rm_redo(),
as Horiguchi-san suggested upthead. Imagine the case where
minRecoveryPoint is set to the location of the XLOG_SMGR_TRUNCATE
record. When restarting the server with that minRecoveryPoint,
the followings would happen, and then PANIC occurs.
1. XLOG_SMGR_TRUNCATE record is read.
2. CheckRecoveryConsistency() is called, and database is marked as
consistent since we've reached minRecoveryPoint (i.e., the location
of XLOG_SMGR_TRUNCATE).
3. XLOG_SMGR_TRUNCATE record is replayed, and invalid page is
found.
4. Since the database has already been marked as consistent, an invalid
page leads to PANIC.
Regards,
--
Fujii Masao
Attachment | Content-Type | Size |
---|---|---|
fujii_test.sh | application/x-sh | 831 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Karl O. Pinc | 2012-12-10 18:20:08 | Re: [PATCH] PL/Python: Add spidata to all spiexceptions |
Previous Message | Heikki Linnakangas | 2012-12-10 17:56:49 | Shuffling xlog header files |