Re: Add information to rm_redo_error_callback() - Mailing list pgsql-hackers

From Masahiko Sawada
Subject Re: Add information to rm_redo_error_callback()
Date
Msg-id CA+fd4k5UC8sF4yvjkisNB7DQoN4pR3o0LSLqwzhTmwHJ5EuS_A@mail.gmail.com
Whole thread Raw
In response to Re: Add information to rm_redo_error_callback()  ("Drouvot, Bertrand" <bdrouvot@amazon.com>)
Responses Re: Add information to rm_redo_error_callback()
List pgsql-hackers
On Tue, 11 Aug 2020 at 00:07, Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
>
> Hi,
>
> On 8/10/20 7:10 AM, Masahiko Sawada wrote:
> > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you
canconfirm the sender and know the content is safe.
 
> >
> >
> >
> > On Wed, 5 Aug 2020 at 00:37, Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
> >> Hi hackers,
> >>
> >> I've attached a small patch to add information to rm_redo_error_callback().
> >>
> >> The changes attached in this patch came while working on the "Add
> >> information during standby recovery conflicts" patch (See [1]).
> >>
> >> The goal is to add more information during the callback (if doable), so
> >> that something like:
> >>
> >> 2020-08-04 14:42:57.545 UTC [15459] CONTEXT:  WAL redo at 0/4A3B0DE0 for
> >> Heap2/CLEAN: remxid 1168
> >>
> >> would get extra information that way:
> >>
> >> 2020-08-04 14:42:57.545 UTC [15459] CONTEXT:  WAL redo at 0/4A3B0DE0 for
> >> Heap2/CLEAN: remxid 1168, blkref #0: rel 1663/13586/16850 fork main blk 0
> >>
> >> As this could be useful outside of [1], a dedicated "sub" patch has been
> >> created (thanks Sawada for the suggestion).
> >>
> >> I will add this patch to the next commitfest. I look forward to your
> >> feedback about the idea and/or implementation.
> >>
> > Thank you for starting the new thread for this patch!
> >
> > I think this patch is simple enough and improves information shown in
> > errcontext.
> >
> > I have two comments on the patch:
> >
> > diff --git a/src/backend/access/transam/xlog.c
> > b/src/backend/access/transam/xlog.c
> > index 756b838e6a..8b2024e9e9 100644
> > --- a/src/backend/access/transam/xlog.c
> > +++ b/src/backend/access/transam/xlog.c
> > @@ -11749,10 +11749,22 @@ rm_redo_error_callback(void *arg)
> >   {
> >      XLogReaderState *record = (XLogReaderState *) arg;
> >      StringInfoData buf;
> > +   int block_id;
> > +   RelFileNode rnode;
> > +   ForkNumber forknum;
> > +   BlockNumber blknum;
> >
> >      initStringInfo(&buf);
> >      xlog_outdesc(&buf, record);
> >
> > +   for (block_id = 0; block_id <= record->max_block_id; block_id++)
> > +   {
> > +       if (XLogRecGetBlockTag(record, block_id, &rnode, &forknum, &blknum))
> > +           appendStringInfo(&buf,", blkref #%d: rel %u/%u/%u fork %s blk %u",
> > +                       block_id, rnode.spcNode, rnode.dbNode,
> > +                       rnode.relNode, forkNames[forknum],
> > +                       blknum);
> > +   }
> >      /* translator: %s is a WAL record description */
> >      errcontext("WAL redo at %X/%X for %s",
> >                 (uint32) (record->ReadRecPtr >> 32),
> >
> > rnode, forknum and blknum can be declared within the for loop.
> >
> > I think it's better to put a new line just before the comment starting
> > from "translator:".
>
> Thanks for looking at it!
>
> I've attached a new version as per your comments.

Thank you for updating the patch!

The patch looks good to me. I've set this patch as Ready for Committer.

Regards,

-- 
Masahiko Sawada            http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Hybrid Hash/Nested Loop joins and caching results from subplans
Next
From: Michael Paquier
Date:
Subject: Re: Switch to multi-inserts for pg_depend