Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1X9Ggh-00018M-Kw for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Jul 2014 16:43:43 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1X9Ggh-0006uo-5W for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Jul 2014 16:43:43 +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 1X9Ggg-0006uf-F9 for pgsql-bugs@postgresql.org; Mon, 21 Jul 2014 16:43:42 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by makus.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1X9GgZ-0002oU-Gk for pgsql-bugs@postgresql.org; Mon, 21 Jul 2014 16:43:40 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id s6LGhOAj004183; Mon, 21 Jul 2014 12:43:24 -0400 From: Tom Lane To: Andres Freund cc: Bruce Momjian , Alvaro Herrera , PostgreSQL Bugs Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts In-reply-to: <20140721163409.GB14989@alap3.anarazel.de> References: <20140720225653.GG5974@alap3.anarazel.de> <18673.1405897470@sss.pgh.pa.us> <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> Comments: In-reply-to Andres Freund message dated "Mon, 21 Jul 2014 18:34:09 +0200" Date: Mon, 21 Jul 2014 12:43:24 -0400 Message-ID: <4182.1405961004@sss.pgh.pa.us> X-Pg-Spam-Score: -1.9 (-) 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 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. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs