From: | vignesh C <vignesh21(at)gmail(dot)com> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: POC: Cleaning up orphaned files using undo logs |
Date: | 2019-09-06 03:31:30 |
Message-ID: | CALDaNm0vx8xQfeSLNzek3MO=MZL0rZy3+J=Yi5u+bzMzCNn-MA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Thomas,
While testing one of the recovery scenarios I found one issue:
FailedAssertion("!(logno == context->recovery_logno)
The details of the same is mentioned below:
The context's try_location was not updated in
UndoLogAllocateInRecovery, in PrepareUndoInsert the try_location was
updated with the undo record size.
In the subsequent UndoLogAllocateInRecovery as the value for
try_location was not initialized but only updated with the size the
logno will always not match if the recovery_logno is non zero and the
assert fails.
Fixed by setting the try_location in UndoLogAllocateInRecovery,
similar to try_location setting in UndoLogAllocate.
Patch for the same is attached.
Please have a look and add the changes in one of the upcoming version.
Regards,
Vignesh
EnterpriseDB: http://www.enterprisedb.com
On Mon, Sep 2, 2019 at 9:53 AM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
>
> On Fri, Aug 30, 2019 at 8:27 PM Kuntal Ghosh <kuntalghosh(dot)2007(at)gmail(dot)com> wrote:
> > I'm getting the following assert failure while performing the recovery
> > with the same.
> > "TRAP: FailedAssertion("slot->meta.status == UNDO_LOG_STATUS_FULL",
> > File: "undolog.c", Line: 997)"
> >
> > I found that we don't emit an WAL record when we update the
> > slot->meta.status as UNDO_LOG_STATUS_FULL. If we don't that, after
> > crash recovery, some new transaction may use that undo log which is
> > wrong, IMHO. Am I missing something?
>
> Thanks, right, that status logging is wrong, will fix in next version.
>
> --
> Thomas Munro
> https://enterprisedb.com
>
>
Attachment | Content-Type | Size |
---|---|---|
0001-FailedAssertion-logno-context-recovery_logno-fix.patch | application/x-patch | 1.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-09-06 03:49:03 | Re: [bug fix] Produce a crash dump before main() on Windows |
Previous Message | Pavel Stehule | 2019-09-06 03:18:58 | Re: enhance SPI to support EXECUTE commands |