Re: WAL replay bugs - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: WAL replay bugs
Date
Msg-id CAB7nPqQabJhABru6=p+0ApB591J2=Qi3X1=df0pGBg7pdDAeNQ@mail.gmail.com
Whole thread Raw
In response to Re: WAL replay bugs  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: WAL replay bugs  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Wed, Jun 18, 2014 at 1:40 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Mon, Jun 2, 2014 at 8:55 AM, Michael Paquier
> <michael.paquier@gmail.com> wrote:
> I'm not sure if this is reasonably possible, but one thing that would
> make this tool a whole lot easier to use would be if you could make
> all the magic happen in a single server.  For example, suppose you had
> a background process that somehow got access to the pre and post
> images for every buffer change, and the associated WAL record, and
> tried applying the WAL record to the pre-image to see whether it got
> the corresponding post-image.  Then you could run 'make check' or so
> and afterwards do something like psql -c 'SELECT * FROM
> wal_replay_problems()' and hopefully get no rows back.
So your point is to have a 3rd independent server in the process that
would compare images taken from a master and its standby? Seems to
complicate the machinery.

> Don't get me wrong, having this tool at all sounds great.  But I think
> to really get the full benefit out of it we need to be able to run it
> in the buildfarm, so that if people break stuff it gets noticed
> quickly.
The patch I sent has included a regression test suite making the tests
rather facilitated: that's only a matter of running actually "make
check" in the contrib repository containing the binary able to compare
buffer captures between a master and a standby.

Thanks,
-- 
Michael



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Doing better at HINTing an appropriate column within errorMissingColumn()
Next
From: Josh Berkus
Date:
Subject: Re: Doing better at HINTing an appropriate column within errorMissingColumn()