Re: [HACKERS] Broken hint bits (freeze) - Mailing list pgsql-hackers

From Sergey Burladyan
Subject Re: [HACKERS] Broken hint bits (freeze)
Date
Msg-id 87lgoi68dg.fsf@seb.koffice.internal
Whole thread Raw
In response to Re: [HACKERS] Broken hint bits (freeze)  (Bruce Momjian <bruce@momjian.us>)
Responses Re: [HACKERS] Broken hint bits (freeze)
Re: [HACKERS] Broken hint bits (freeze)
Re: [HACKERS] Broken hint bits (freeze)
List pgsql-hackers
Bruce Momjian <bruce@momjian.us> writes:

> On Wed, Jun 21, 2017 at 07:49:21PM +0530, Amit Kapila wrote:
> > On Tue, Jun 20, 2017 at 7:24 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> > > Hmm.  I think we need something that works with lesser effort because
> > > not all users will be as knowledgeable as you are, so if they make any
> > > mistakes in copying the file manually, it can lead to problems.  How
> > > about issuing a notification (XLogArchiveNotifySeg) in shutdown
> > > checkpoint if archiving is enabled?
> > >
> > 
> > I have thought more about the above solution and it seems risky to
> > notify archiver for incomplete WAL segments (which will be possible in
> > this case as there is no guarantee that Checkpoint record will fill
> > the segment).  So, it seems to me we should update the document unless
> > you or someone has some solution to this problem.

> As far as I know this is the only remaining open issue.  Sergey, please
> verify.  I appreciate the work everyone has done to improve this, and
> all the existing fixes have been pushed to all supported branches.  :-)

Yes, thank you all for your help!

Yes, this is last issue with checkpoint that I know, how to ensure that
standby sync all shared buffers into disk on it shutdown.

I thinking about enforce restartpoint on shutdown, like:
src/backend/access/transam/xlog.c
-   8639     if (XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
-   8640         XLByteLE(lastCheckPoint.redo, ControlFile->checkPointCopy.redo))
-   8641     {
+   8639     if ( !(flags & CHECKPOINT_IS_SHUTDOWN) && (XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
+   8640         XLByteLE(lastCheckPoint.redo, ControlFile->checkPointCopy.redo) )
+   8641     {

But I still not read source and not sure about this solution.


PS:
I successfully upgraded last night from 9.2 to 9.4 and find other issue :-)

It is about hash index and promote:
1. create master
2. create standby from it
3. create unlogged table and hash index like:create unlogged table test (id int primary key, v text);create index on
testusing hash (id);
 
3. stop master
4. promote standby

now, if you try to upgrade this new promoted master pg_upgrade will stop
on this hash index:
error while creating link for relation "public.test_id_idx" ("s/9.2/base/16384/16393" to "m/9.4/base/16422/16393"): No
suchfile or directory
 
Failure, exiting

I touch this file (s/9.2/base/16384/16393) and rerun pg_upgrade from
scratch and it complete successfully.

-- 
Sergey Burladyan



pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: [HACKERS] shift_sjis_2004 related autority files are remaining
Next
From: Sergey Burladyan
Date:
Subject: Re: [HACKERS] Broken hint bits (freeze)