pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <bruce@momjian.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Andres Freund <andres@2ndquadrant.com>
Cc: PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts
Date: Tue, 24 Jun 2014 16:13:46 -0400
Message-ID: <20140624201346.GB17110@momjian.us> (raw)
In-Reply-To: <20140620180725.GD29143@momjian.us>
References: <20140619020633.GA20469@momjian.us>
	<20140619015205.GD3806@momjian.us>
	<20140619014034.GC3806@momjian.us>
	<20140619220425.GQ18688@eldon.alvh.no-ip.org>
	<20140620010653.GS18688@eldon.alvh.no-ip.org>
	<20140620180725.GD29143@momjian.us>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-bugs>

On Fri, Jun 20, 2014 at 02:07:25PM -0400, Bruce Momjian wrote:
> On Thu, Jun 19, 2014 at 09:06:54PM -0400, Alvaro Herrera wrote:
> > Alvaro Herrera wrote:
> > > Bruce Momjian wrote:
> > 
> > > Bruce Momjian wrote:
> > > 
> > > > > OK, so the xid has to be beyond 2^31 during pg_upgrade to trigger a
> > > > > problem?  That might explain the rare reporting of this bug.  What would
> > > > > the test query look like so we can tell people when to remove the '0000'
> > > > > files?  Would we need to see the existence of '0000' and high-numbered
> > > > > files?  How high?  What does a 2^31 file look like?
> > > > 
> > > > Also, what would a legitimate 0000 file at wrap-around time look like?
> > > > Would there have to be an 'ffff' or 'ffffff' file?
> > > 
> > > Since I was wrong, there is no point in further research here.  Anyway
> > > the last file before wrapping around in pg_multixact/members is FFFF.
> > 
> > Oops, I meant the last file before wrap in pg_multixact/offsets is FFFF,
> > which is what we're talking about in this thread.
> > 
> > For members it's 14078, but it's not relevant here.
> 
> OK, so the next questions is, what will the minor-release-note query we
> give users to test this look like?  Do we expect no gaps in numbering? 
> Is it enough to test for the existance of '0000' and lack of '0001' and
> 'FFFF'?  Basically, if we expect no gaps in normal numbering, then a
> '0000' with no number after it and no wrap-around number before it means
> the '0000' is left over from initdb and can be removed.

Assuming this is true, here is a query we can put in the next 9.3 minor
release notes to tell users if they need to remove the '0000' file:

	WITH list(file) AS
	(
	        SELECT * FROM pg_ls_dir('pg_multixact/offsets')
	)
	SELECT  EXISTS (SELECT * FROM list WHERE file = '0000') AND
	        NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
	        NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
	        EXISTS (SELECT * FROM list WHERE file != '0000')
	        AS file_removal_needed;

Do they need to remove the members/0000 file too?

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs



view thread (78+ messages)  latest in thread

Message-ID: <20140624201346.GB17110@momjian.us>
Permalink:  ../20140624201346.GB17110@momjian.us/
Also on:    postgresql.org/message-id/20140624201346.GB17110@momjian.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: bruce@momjian.us, alvherre@2ndquadrant.com, andres@2ndquadrant.com
  Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts
  In-Reply-To: <20140624201346.GB17110@momjian.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox