Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDT2D-0000Ht-Gn for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Jun 2016 08:52:21 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bDT2C-000316-TE for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Jun 2016 08:52:20 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bDT0q-0001UK-Nd for pgsql-hackers@postgresql.org; Thu, 16 Jun 2016 08:50:56 +0000 Received: from lungold.riddles.org.uk ([82.68.208.19]) by makus.postgresql.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bDT0j-0004LN-Fe for pgsql-hackers@postgresql.org; Thu, 16 Jun 2016 08:50:55 +0000 Received: from localhost ([127.0.0.1]:45795 helo=caithnard.riddles.org.uk) by lungold.riddles.org.uk with esmtp (Exim 4.84 (FreeBSD)) (envelope-from ) id 1bDT0g-0006Lt-3I; Thu, 16 Jun 2016 08:50:46 +0000 From: Andrew Gierth To: Alvaro Herrera Cc: Stephen Frost , pgsql-hackers@postgresql.org Subject: Re: MultiXactId error after upgrade to 9.3.4 In-Reply-To: <20160615233427.GA18976@alvherre.pgsql> (Alvaro Herrera's message of "Wed, 15 Jun 2016 19:34:27 -0400") Message-ID: <878ty5seyr.fsf@news-spur.riddles.org.uk> References: <20160615233427.GA18976@alvherre.pgsql> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (berkeley-unix) Date: Thu, 16 Jun 2016 09:50:46 +0100 MIME-Version: 1.0 Content-Type: text/plain X-Pg-Spam-Score: -3.3 (---) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org >>>>> "Alvaro" == Alvaro Herrera writes: Alvaro> I think that was a good choice in general so that Alvaro> possibly-data-eating bugs could be reported, but there's a Alvaro> problem in the specific case of tuples carried over by Alvaro> pg_upgrade whose Multixact is "further in the future" compared Alvaro> to the nextMultiXactId counter. I think it's pretty clear that Alvaro> we should let that error be downgraded to DEBUG too, like the Alvaro> other checks. But that leaves an obvious third issue: it's all very well to ignore the pre-upgrade (pre-9.3) mxid if it's older than the cutoff or it's in the future, but what if it's actually inside the currently valid range? Looking it up as though it were a valid mxid in that case seems to be completely wrong and could introduce more subtle errors. (It can, AFAICT, be inside the currently valid range due to wraparound, i.e. without there being a valid pg_multixact entry for it, because AFAICT in 9.2, once the mxid is hinted dead it is never again either looked up or cleared, so it can sit in the tuple xmax forever, even through multiple wraparounds.) Why is the correct rule not "check for and ignore pre-upgrade mxids before even trying to fetch members"? -- Andrew (irc:RhodiumToad) -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers