Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pZzxI-0000ZO-Uw for pgsql-bugs@arkaria.postgresql.org; Wed, 08 Mar 2023 20:00:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pZzxH-0000ck-JE for pgsql-bugs@arkaria.postgresql.org; Wed, 08 Mar 2023 20:00:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pZzxH-0000cb-8y for pgsql-bugs@lists.postgresql.org; Wed, 08 Mar 2023 20:00:07 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pZzxE-0008FP-0U for pgsql-bugs@lists.postgresql.org; Wed, 08 Mar 2023 20:00:06 +0000 Received: by mail-lj1-x22e.google.com with SMTP id g18so17809644ljl.3 for ; Wed, 08 Mar 2023 12:00:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678305603; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=Zmvka7MC608FSKxfUXiZlMMd0685Do87N0a6TwkQmiA=; b=nS+eD5KoVO6ux4ksQAFRyWB93jd2/610/+6OtHih1VHnrrQI40t6/PsTSOtgBmFNm8 nXxrz/xRTN3ap5lhdO2w5Ly0kNVEZsW/TW6DHHlKnIg48Q2bxTZLHdLj2MV2ONjaVaMB djtYbc8JyatYFOwc75vZS2xoy6hzI5zpru+yHjOYwAo2jV9Gxc7OXYvvuF7aSCyhtgVw VTGZeXdYSX6wPwI563RFIfOHkmvuCv7rIas5RpHWH+NFOW09a6/E6iRtxT+Ztpt9iU9F lKPIg9NWpAvFiVvLTl42sQGQ3Y2/WXoairYL9LsZqel+VcwEraGa0nsAPw2rqJ2HWrGP cQ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678305603; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Zmvka7MC608FSKxfUXiZlMMd0685Do87N0a6TwkQmiA=; b=VmLI7vLBLzCqMk0gc9DIPa+DRhiVBFbPUFMs/7AYh6Hu4scXVGCh4y/iyhyFfG+Zi1 8txpXOpL0KccgpLu0prOe0UdkCt4/2xQPEne1vJH8YcIvyzM9xBMpMqsJK5ZkRtg1b3N fvw4YDlngB7HTmG6viAI4pADnyaaD7M+bEEkWyH0Y1+W7cJ3ByJC2xEQTxRZp3QOjgM/ MRATX3ifsLzOwBORnMtLzzT4vShKOTAbF9w95WsDbYzUmqmg+dizDYxebzr9c+cf0Y9g QxH0ucsNuM4edVK6fWz8WMb/vrgxwgJbE0kwV1/18fw/oddjjbaO1Mb/6E+kZB/0VKiK 0OvA== X-Gm-Message-State: AO0yUKWv+cVFH0ZEg0nxjHKLJuGi0PwFU51fTS7pEYvFKGYxfnkswYEA vGg5PgUzSf2pQkeVJwOTeh2fE+JpnRU= X-Google-Smtp-Source: AK7set/wRe7UbkNt7DeFzfX8gEovNl7QFkbfn9UudooH5L1KI+JZoeUsKZ7AxbAboOzbau0QhOcvaQ== X-Received: by 2002:a2e:a484:0:b0:293:51d2:9c78 with SMTP id h4-20020a2ea484000000b0029351d29c78mr5605157lji.1.1678305603145; Wed, 08 Mar 2023 12:00:03 -0800 (PST) Received: from [1.0.0.7] ([178.155.5.178]) by smtp.gmail.com with ESMTPSA id 21-20020a05651c009500b00295a8d0722asm2658447ljq.93.2023.03.08.12.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Mar 2023 12:00:02 -0800 (PST) Content-Type: multipart/mixed; boundary="------------L7xwUIOrsqdaRcEQBYa032DV" Message-ID: <33d30d9c-9491-386e-d19f-b58861683fe2@gmail.com> Date: Wed, 8 Mar 2023 23:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: BUG #17368: Assert failed in GetSafeSnapshot() for SERIALIZABLE READ ONLY DEFERRABLE transaction Content-Language: en-US To: Thomas Munro Cc: pgsql-bugs@lists.postgresql.org References: <17368-98a4f99e8e4b4402@postgresql.org> <18a116d2-7927-6a62-aa60-ab16c53183f9@gmail.com> From: Alexander Lakhin In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------L7xwUIOrsqdaRcEQBYa032DV Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Thomas, 08.03.2023 14:57, Thomas Munro wrote: > On Tue, Mar 7, 2023 at 12:39 PM Thomas Munro wrote: >> Scratch that. I like the more ambitious idea better. I originally >> thought it would be less back-patchable, but that's nonsense -- this >> was a straight up thinko in ancient commit bdaabb9b and we should just >> fix it properly. That is, we should treat this case as a >> generalisation of the the PredXact->WritableSxactCount == 0 case, it's >> just that we had to do more work to figure that out. Here's a patch >> like that. > Here's a better version. I plan to push this tomorrow if there are no > objections. Just in case you find a test for the fix useful, maybe the attached patch could be added to the commit. (It triggers the assert on unpatched master.) Best regards, Alexander --------------L7xwUIOrsqdaRcEQBYa032DV Content-Type: text/x-patch; charset=UTF-8; name="Test-for-race-in-SERIALIZABLE-READ-ONLY.patch" Content-Disposition: attachment; filename="Test-for-race-in-SERIALIZABLE-READ-ONLY.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9yZWFkLW9ubHktYW5v bWFseS0zLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9yZWFkLW9ubHktYW5v bWFseS0zLm91dAppbmRleCA0ZjdkM2Y4NjNkLi5kYmFmMDE5NDRlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvcmVhZC1vbmx5LWFub21hbHktMy5vdXQKKysr IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3JlYWQtb25seS1hbm9tYWx5LTMub3V0 CkBAIC0xLDYgKzEsNiBAQAotUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDMgc2Vzc2lvbnMKK1Bh cnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9u OiBzMnJ4IHMycnkgczFyeSBzMXd5IHMxYyBzM3IgczJ3eCBzMmMgczNjCitzdGFydGluZyBw ZXJtdXRhdGlvbjogczJyeCBzMnJ5IHMxcnkgczF3eSBzMWMgczNyIHMyd3ggczJjIHMzYyBz NGMKIHN0ZXAgczJyeDogU0VMRUNUIGJhbGFuY2UgRlJPTSBiYW5rX2FjY291bnQgV0hFUkUg aWQgPSAnWCc7CiBiYWxhbmNlCiAtLS0tLS0tCkBAIC0zMiwzICszMiwzMCBAQCBZIHwgICAg IDIwCiAoMiByb3dzKQogCiBzdGVwIHMzYzogQ09NTUlUOworc3RlcCBzNGM6IENPTU1JVDsK Kworc3RhcnRpbmcgcGVybXV0YXRpb246IHMycnkgczF3eSBzMWMgczJ3eCBzNHRvIHM0d3gg czRjIHMzciBzMmMgczNjCitzdGVwIHMycnk6IFNFTEVDVCBiYWxhbmNlIEZST00gYmFua19h Y2NvdW50IFdIRVJFIGlkID0gJ1knOworYmFsYW5jZQorLS0tLS0tLQorICAgICAgMAorKDEg cm93KQorCitzdGVwIHMxd3k6IFVQREFURSBiYW5rX2FjY291bnQgU0VUIGJhbGFuY2UgPSAy MCBXSEVSRSBpZCA9ICdZJzsKK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMyd3g6IFVQREFU RSBiYW5rX2FjY291bnQgU0VUIGJhbGFuY2UgPSAtMTEgV0hFUkUgaWQgPSAnWCc7CitzdGVw IHM0dG86IFNFVCBsb2NrX3RpbWVvdXQgPSAnMTBtcycKK3N0ZXAgczR3eDogVVBEQVRFIGJh bmtfYWNjb3VudCBTRVQgYmFsYW5jZSA9IC0xMSBXSEVSRSBpZCA9ICdYJzsgPHdhaXRpbmcg Li4uPgorc3RlcCBzNHd4OiA8Li4uIGNvbXBsZXRlZD4KK0VSUk9SOiAgY2FuY2VsaW5nIHN0 YXRlbWVudCBkdWUgdG8gbG9jayB0aW1lb3V0CitzdGVwIHM0YzogQ09NTUlUOworc3RlcCBz M3I6IFNFTEVDVCBpZCwgYmFsYW5jZSBGUk9NIGJhbmtfYWNjb3VudCBXSEVSRSBpZCBJTiAo J1gnLCAnWScpIE9SREVSIEJZIGlkOworaWR8YmFsYW5jZQorLS0rLS0tLS0tLQorWCB8ICAg ICAgMAorWSB8ICAgICAyMAorKDIgcm93cykKKworc3RlcCBzMmM6IENPTU1JVDsKK0VSUk9S OiAgY291bGQgbm90IHNlcmlhbGl6ZSBhY2Nlc3MgZHVlIHRvIHJlYWQvd3JpdGUgZGVwZW5k ZW5jaWVzIGFtb25nIHRyYW5zYWN0aW9ucworc3RlcCBzM2M6IENPTU1JVDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9yZWFkLW9ubHktYW5vbWFseS0zLnNwZWMg Yi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvcmVhZC1vbmx5LWFub21hbHktMy5zcGVjCmlu ZGV4IDYxZDljMGI5ZTAuLjYyNmI2NmExNWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9yZWFkLW9ubHktYW5vbWFseS0zLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL3NwZWNzL3JlYWQtb25seS1hbm9tYWx5LTMuc3BlYwpAQCAtMzYsNCArMzYsMTEg QEAgc2V0dXAJCXsgQkVHSU4gVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTEla QUJMRSBSRUFEIE9OTFkgREVGRVJSQUJMRTsgfQogc3RlcCBzM3IJeyBTRUxFQ1QgaWQsIGJh bGFuY2UgRlJPTSBiYW5rX2FjY291bnQgV0hFUkUgaWQgSU4gKCdYJywgJ1knKSBPUkRFUiBC WSBpZDsgfQogc3RlcCBzM2MJeyBDT01NSVQ7IH0KIAotcGVybXV0YXRpb24gczJyeCBzMnJ5 IHMxcnkgczF3eSBzMWMgczNyIHMyd3ggczJjIHMzYworc2Vzc2lvbiBzNAorc2V0dXAJCXsg QkVHSU4gVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsgfQorc3Rl cCBzNHRvCXsgU0VUIGxvY2tfdGltZW91dCA9ICcxMG1zJyB9CitzdGVwIHM0d3gJeyBVUERB VEUgYmFua19hY2NvdW50IFNFVCBiYWxhbmNlID0gLTExIFdIRVJFIGlkID0gJ1gnOyB9Citz dGVwIHM0Ywl7IENPTU1JVDsgfQorCitwZXJtdXRhdGlvbiBzMnJ4IHMycnkgczFyeSBzMXd5 IHMxYyBzM3IgczJ3eCBzMmMgczNjIHM0YworcGVybXV0YXRpb24gczJyeSBzMXd5IHMxYyBz Mnd4IHM0dG8gczR3eCBzNGMgczNyIHMyYyBzM2MK --------------L7xwUIOrsqdaRcEQBYa032DV--