Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1erBBA-0004Z5-0l for pgsql-admin@arkaria.postgresql.org; Wed, 28 Feb 2018 23:30:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1erBB8-0005c3-5B for pgsql-admin@arkaria.postgresql.org; Wed, 28 Feb 2018 23:30:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1erBB7-0005bt-Tz for pgsql-admin@lists.postgresql.org; Wed, 28 Feb 2018 23:30:29 +0000 Received: from smtprelay0017.b.hostedemail.com ([64.98.42.17] helo=smtprelay.b.hostedemail.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1erBB3-0005Sg-FH for pgsql-admin@postgresql.org; Wed, 28 Feb 2018 23:30:29 +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 652D732B03D; Wed, 28 Feb 2018 23:30:22 +0000 (UTC) X-Session-Marker: 616C76686572726540616C76682E6E6F2D69702E6F7267 X-Spam-Summary: 90,0,0,,d41d8cd98f00b204,alvherre@alvh.no-ip.org,:::::,RULES_HIT:41:355:379:599:871:965:966:967:973:988:989:1260:1311:1312:1313:1314:1345:1359:1437:1515:1516:1518:1519:1534:1541:1575:1594:1595:1596:1711:1730:1747:1764:1777:1792:2196:2199:2393:2525:2560:2563:2682:2685:2693:2859:2895:2909:2915:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3352:3865:3867:3868:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4385:4390:4395:4605:5007:6119:6261:6748:7281:7809:7875:7903:7909:8531:9025:9121:10004:10394:10400:10848:11026:11232:11473:11604:11658:11914:12296:12438:12660:12895:13439:13894:13895:14658:21080:21627:30012:30016:30054:30056:30069:30070:30090:30091,0,RBL:179.57.113.18:@alvh.no-ip.org:.lbl8.mailshell.net-62.14.63.190 64.201.201.201,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:no-ip.org-dnsbl7.mailshell.net-127.4.0.190,Custom_rules:0:0:0,LFtime:71,LUA_SUMMARY:none X-HE-Tag: boy57_5a7c648b4e207 X-Filterd-Recvd-Size: 3249 Received: from alvin.alvh.no-ip.org (unknown [179.57.113.18]) (Authenticated sender: alvherre@alvh.no-ip.org) by omf10.b.hostedemail.com (Postfix) with ESMTPA; Wed, 28 Feb 2018 23:30:21 +0000 (UTC) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id 68B3360B; Wed, 28 Feb 2018 20:30:19 -0300 (-03) Date: Wed, 28 Feb 2018 20:30:19 -0300 From: Alvaro Herrera To: Alexandre Garcia Cc: Andres Freund , "pgsql-admin@postgresql.org" Subject: Re: postgresql 9.6 - cannot freeze committed xmax Message-ID: <20180228233019.qydod7ez3xbgn5ot@alvherre.pgsql> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="saqj6tdvqhp5hsoj" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20170306-137-4415bd-dirty (1.8.0) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --saqj6tdvqhp5hsoj Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Alexandre Garcia wrote: > > > > Ooh. > > > > If you SELECT FOR UPDATE a tuple in 9.2, bit 0x0040 gets set in > > infomask, and nothing else. If you pg_upgrade and later try to freeze > > such a tuple, it will fail with the error reported. > > > > The correct test to use is HEAP_XMAX_IS_LOCKED_ONLY, which also tests > > for the above condition. > > > > I will verify this theory and push a patch shortly, if it proves > > correct. > > Oh good news :). I have my old 9.2 around if you need me to do more > testing on it. Not necessary -- I reproduced the problem (quite easily -- just SELECT FOR UPDATE a tuple in 9.2, then pg_upgrade, then VACUUM FREEZE the table in the upgraded server) and confirm that it doesn't happen in 9.6.6, happens in 9.6.8 (didn't try 9.6.7 but code is the same as 9.6.8), and is fixed with the attached patch. Will push soon ... probably tomorrow as I have to leave the building now. Cheers -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --saqj6tdvqhp5hsoj Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-Fix-freeze-xmax-bug.patch"