Re: WAL replay bugs - Mailing list pgsql-hackers

From Kyotaro HORIGUCHI
Subject Re: WAL replay bugs
Date
Msg-id 20140704.183705.93069286.horiguchi.kyotaro@lab.ntt.co.jp
Whole thread Raw
In response to Re: WAL replay bugs  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: WAL replay bugs
List 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.paquier@gmail.com> wrote in
<CAB7nPqT_fs_3jLNHYWC6nzej4sBL6DGsLFVCg0JBUkgjeP9Tfw@mail.gmail.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.kyotaro@lab.ntt.co.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 youthought 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



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: pg_xlogdump --stats
Next
From: Amit Khandekar
Date:
Subject: Re: [PATCH] introduce XLogLockBlockRangeForCleanup()