Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1YxJtH-0002nQ-UR for pgsql-hackers@arkaria.postgresql.org; Tue, 26 May 2015 18:47:52 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1YxJtH-00045k-0O for pgsql-hackers@arkaria.postgresql.org; Tue, 26 May 2015 18:47:51 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1YxJtE-00045b-CP for pgsql-hackers@postgresql.org; Tue, 26 May 2015 18:47:48 +0000 Received: from smtprelay0250.b.hostedemail.com ([64.98.42.250] helo=smtprelay.b.hostedemail.com) by makus.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1YxJt9-0005AH-UE for pgsql-hackers@postgresql.org; Tue, 26 May 2015 18:47:46 +0000 Received: from filter.hostedemail.com (10.5.19.248.rfc1918.com [10.5.19.248]) by smtprelay05.b.hostedemail.com (Postfix) with ESMTP id CA54E32AFC5; Tue, 26 May 2015 18:47:42 +0000 (UTC) X-Session-Marker: 616C76686572726540616C76682E6E6F2D69702E6F7267 X-Spam-Summary: 13, 1.2, 0, , d41d8cd98f00b204, alvherre@alvh.no-ip.org, :::, RULES_HIT:41:355:379:599:967:973:988:989:1260:1263:1277:1311:1312:1313:1314:1345:1359:1437:1515:1516:1518:1519:1534:1542:1593:1594:1595:1596:1711:1730:1747:1777:1792:2393:2525:2553:2560:2563:2682:2685:2693:2828:2859:2892:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3354:3865:3866:3867:3868:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4250:4605:4659:5007:6119:6261:7809:7901:7903:9025:9121:10008:10400:10848:11232:11256:11257:11638:11658:11914:12294:12517:12519:12740:13255:13894:13895:21067:21080, 0, RBL:none, CacheIP:none, Bayesian:0.5, 0.5, 0.5, Netcheck:none, DomainCache:0, MSF:not bulk, SPF:fn, MSBL:0, DNSBL:none, Custom_rules:0:1:0 X-HE-Tag: skirt69_8c5bd30cc548 X-Filterd-Recvd-Size: 3062 Received: from alvin.alvh.no-ip.org (unknown [186.37.207.112]) (Authenticated sender: alvherre@alvh.no-ip.org) by omf05.b.hostedemail.com (Postfix) with ESMTPA; Tue, 26 May 2015 18:47:40 +0000 (UTC) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id 651CD66A; Tue, 26 May 2015 15:47:36 -0300 (CLT) Date: Tue, 26 May 2015 15:47:36 -0300 From: Alvaro Herrera To: Paul Smith Cc: pgsql-hackers@postgresql.org Subject: Re: ERROR: MultiXactId xxxx has not been created yet -- apparent wraparound Message-ID: <20150526184736.GX5885@postgresql.org> References: <556439CF.7070109@pscs.co.uk> <20150526150159.GV5885@postgresql.org> <55649583.1040206@pscs.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <55649583.1040206@pscs.co.uk> User-Agent: Mutt/1.5.23 (2014-03-12) X-Pg-Spam-Score: -1.9 (-) 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 Paul Smith wrote: > No, nothing like that. It was just running fine, and then suddenly (at 2am > on 23 May) it started throwing up loads of these errors. The DB server > wasn't even restarted at that point. It was just working fine, then suddenly > wasn't. (The first error was at 02:00:32 BST, then every few minutes after > that there's another one). Another crazy thought is that the host system messed up and overwrote part of the table with pages from some other guest system. I have never seen a report of such a thing happening. > It's running in a Hyper-V guest. We had taken a backup of the VM at 00:34 on > 23 May and that looks to be absolutely fine. What I have done now is restore > that backup and import the new data which arrived since that backup was > made, and it seems OK now. I still have the 'broken' installation in case > more information is needed from it. I'd try to get a raw dump of the damaged > tuple data if I knew how to find where it is in the relation file... Well, you could try a binary search to locate the (or a) borked page within the table. Or you could write a plpgsql function with an EXCEPTION block that reads each tuple, and in case of error reports the CTID of the tuple being read. (select * from tab where ctid=generated_ctid; EXCEPT WHEN OTHERS THEN raise notice ' .. ', generated_ctid). Once you have located the problem tuple, a pageinspect dump would be the starting point. Another idea is to attach a debugger to the backend process, and set a breakpoint on function errfinish. Once the error is hit the breakpoint will stop the execution before the error is reported; at that point you can request for a backtrace from the debugger. (Make sure to examine errordata to see whether the error being hit is the multixact one.) > I suppose it's possible that it was disk or memory corruption, but I've seen > that before, and it hasn't looked like this. Yeah, same here. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers