Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1X9Gls-0001S2-5v for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Jul 2014 16:49:04 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1X9Glr-0007xH-Kt for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Jul 2014 16:49:03 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1X9Glp-0007uI-Sl for pgsql-bugs@postgresql.org; Mon, 21 Jul 2014 16:49:02 +0000 Received: from mail.anarazel.de ([217.115.131.40]) by makus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1X9Glm-0002vn-FY for pgsql-bugs@postgresql.org; Mon, 21 Jul 2014 16:49:00 +0000 Received: from intern.anarazel.de (p5DDC7BF8.dip0.t-ipconnect.de [93.220.123.248]) (Authenticated sender: andres@anarazel.de) by mail.anarazel.de (Postfix) with ESMTPSA id A3845500001; Mon, 21 Jul 2014 18:48:57 +0200 (CEST) Date: Mon, 21 Jul 2014 18:48:57 +0200 From: Andres Freund To: Tom Lane Cc: Bruce Momjian , Alvaro Herrera , PostgreSQL Bugs Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts Message-ID: <20140721164857.GO5974@alap3.anarazel.de> References: <18851.1405897900@sss.pgh.pa.us> <20140720233125.GI5974@alap3.anarazel.de> <19458.1405899435@sss.pgh.pa.us> <20140720234925.GJ5974@alap3.anarazel.de> <22178.1405903964@sss.pgh.pa.us> <26504.1405912770@sss.pgh.pa.us> <20140721161222.GA17049@alap3.anarazel.de> <3655.1405959656@sss.pgh.pa.us> <20140721163409.GB14989@alap3.anarazel.de> <4182.1405961004@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4182.1405961004@sss.pgh.pa.us> X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-bugs Precedence: bulk Sender: pgsql-bugs-owner@postgresql.org On 2014-07-21 12:43:24 -0400, Tom Lane wrote: > Andres Freund writes: > > I'm not wondering so much about vac_update_relstats(). There indeed the > > calls aren't new and the worst that can happen is a slightly older > > freeze limit. I'm more wondering about vac_update_datfrozenxid(). Afaics > > we very well could hit > > newFrozenXid = lastSaneFrozenXid = GetOldestXmin(NULL, true); > > newMinMulti = lastSaneMinMulti = GetOldestMultiXactId(); > > for a relation that has just been vacuumed by another backend. > > Hmm ... I see. The issue is not what the computed minimum datfrozenxid > etc should be; it's right to err in the backwards direction there. > It's whether we want to declare that the calculation is bogus and abandon > truncation if another session manages to sneak in a very-new relfrozenxid. > Yeah, you're right, we need to be conservative about doing that. I'd > wanted to avoid extra calls here but I guess we have to do them after all. > Will fix. I wonder if GetTopTransactionId()/MultiXactIdSetOldestMember() and using lastSane* = ReadNew* isn't sufficient. After the xid assignment concurrent GetOldest* can't go below the ReadNew* values anymore, right? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs