Re: WAL replay bugs

From: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
To: michael(dot)paquier(at)gmail(dot)com
Cc: hlinnakangas(at)vmware(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: WAL replay bugs
Date: 2014-07-04 09:37:05
Message-ID: 20140704.183705.93069286.horiguchi.kyotaro@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello, thank you for considering my comments, including somewhat
impractical ones.

I'll have a look at the latest patch sooner.

At Fri, 4 Jul 2014 15:29:51 +0900, Michael Paquier <michael(dot)paquier(at)gmail(dot)com> wrote in <CAB7nPqT_fs_3jLNHYWC6nzej4sBL6DGsLFVCg0JBUkgjeP9Tfw(at)mail(dot)gmail(dot)com>
> OK, I have been working more on this patch, improving on-the-fly the
> following things on top of what Horiguchi-san has reported:
> - Moved sequence page opaque data to sequence.h, renaming it at the same time.
> - Improvement of page type identification, particularly for sequences
> using a correct opaque data structure. For gin the process is not that
> cool, but I guess that there is nothing much to do as it has no proper
> page identifier :(

Year, there seems to be no choice than that.

> On Thu, Jul 3, 2014 at 7:34 PM, Kyotaro HORIGUCHI
> <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> > ===== bufcapt.c:
> >
> > - buffer_capture_remember() or so.
...
> Yes, it is worth mentioning and a comment in bufcapt.h seems enough.
>
> > - buffer_capture_forget()
...
> Yesh, this seems informative.
>
> > - buffer_capture_is_changed()
...
> Hm, yes. This name looks better fine as it remains static within bufcapt.c.
>
> > ====== bufmgr.c:
> >
> > - ConditionalLockBuffer()
...
> Fixed.
>
> > - LockBuffer()
...
> > lwlock.h: #define LWLockHoldedExclusive(l) ((l)->exclusive > 0)
> > lwlock.h: #define LWLockHoldedShared(l) ((l)->shared > 0)
> I don't think that there is much to gain with such macros as of now
> LWLock->exclusive is only used in the code this patch introduces.

Year, I think so, too:p That's simply for the case if you
thought that.

> > If there isn't any particular concern, 'XXX:' should be removed.
> Well yes.

That's great.

> > ===== bufpage.c:
> > ===== bufcapt.h:
> >
> > - header comment
> >
> > The file name is misspelled as 'bufcaptr.h'.
> Nicely spotted.

Thank you ;)

> > - The includes in this header except for buf.h seem not to be
> > necessary.
> Yep.
>
> > ===== init_env.sh:
> >
> > - pg_get_test_port()
> > It determines server port using PG_VERSION_NUM, but is it
> > necessary? Addition to it, the theoretical maximum initial
> > PGPORT seems to be 65535 but this script search for free port
> > up to the number larger by 16 from the start, which would be
> > beyond the edge.
> Hm, no. As of now, there is still some margin:
> PG_VERSION_NUM = 90500
> PG_VERSION_NUM % 16384 + 49152 = 57732

Yes, it's practically no problem. I said about the theroretical
max value seeing it without any preassumption about the value of
PG_VERSION_NUM. There's in reality no problem before the
PostgreSQL 9.82.88 comes, and 10.0.0 doesn't cause problem. So
I'm not so dissapointed if it is not fixed.

> > - pg_get_test_port()
> >
> > It stops with error after 16 times of failure, but the message
> > complains only about the final attempt. If you want to mention
> > the port numbers, it might should be 'port $PGPORTSTART-$PGPORT
> > ..' or would be 'All 16 ports attempted failed' or something..
> Hm. You could complain about pg_upgrade as well now for the same
> thing. But I guess that it doesn't hurt to complain back to caller
> about the range of ports already in use, so changed this way.

Yes, this comment is also comes from a kind of
fastidiousness. I'm satisified not to fixed if you think so.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Khandekar 2014-07-04 09:37:14 Re: [PATCH] introduce XLogLockBlockRangeForCleanup()
Previous Message Andres Freund 2014-07-04 09:34:21 Re: pg_xlogdump --stats