Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qunz0-001hBp-8O for pgsql-bugs@arkaria.postgresql.org; Mon, 23 Oct 2023 06:00:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qunyy-005lrV-4W for pgsql-bugs@arkaria.postgresql.org; Mon, 23 Oct 2023 06:00:08 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qunyx-005lrN-RY for pgsql-bugs@lists.postgresql.org; Mon, 23 Oct 2023 06:00:08 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qunyv-002CIT-AV for pgsql-bugs@lists.postgresql.org; Mon, 23 Oct 2023 06:00:07 +0000 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-2c4fe37f166so40711251fa.1 for ; Sun, 22 Oct 2023 23:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698040804; x=1698645604; darn=lists.postgresql.org; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=kKBg7iNI3wQRX4MVqKV5M7Av3RCwArFsUnOLO0nNAW4=; b=ZajEBXHxKL6Ja68+HZ3MjHy+ymmv34ACIaePgVZbdJAI5UyRdOfcMYBT6y80QtvNvG UkkoXL+5ehoGZseAfN7pnAbWeezq5XhPkurvXd0FK9h2NeM22Wh23h8fBpRREkFQCyIG sccdssOOLi4FZjLx80mfi2koknJBuSApf2C1UrJQKQzn2Xh3XHQ1hz75qQEBkESQFr7F 6sFZlI4hQTS6h2vlMUophwHUvgv1YTaM4mZs2uFpofuShlwTfz9COFKpNcQA+1NTTocN nrG84YTSjaGgi4ScdxVb0/nplc2FlUuO/9J/ClfJcC/IwWzQm9Y1e1yphS+gQ5e4hC5/ qKDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698040804; x=1698645604; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=kKBg7iNI3wQRX4MVqKV5M7Av3RCwArFsUnOLO0nNAW4=; b=PlJ0QO4coTBCNxvUuPwQVjn2OtkeCk4FkMKqM2mUxl4dm957jEap/DRH6ll0lXcZXA Q/Dip/rVOE/sOuXPM4yEDUr99GIoEHG4hepLaUkvbFyfsO6Cp2pdMqxRqOaHZZsyZk0o Sx0BIwKpp8ncX5MIy0CanJetfMW3MbqCNxx1fS+3XA9LGkrTMkdiLa7VNWhaUcQHso9a k8eh4Pxe1ZFkWl+CvqCy7ZXQLZgdLs6vHzZjJDMDRTADE/xps4oh/jANdlr4+v8sDsn+ EENfJF6yXXg/EwrtU0WjEzw5GV9FDPvXPDKtf8Vr16VJGSy6iQAA42Nl39PvYCAvZUtV 13GA== X-Gm-Message-State: AOJu0Yy452n0GxmtrBGGGZzAJE23pUmSmHO5UhiUBKwnNq3OKdVNYgzM /C1D3AG1TRM14I839IXC8bf4VeSPZNY= X-Google-Smtp-Source: AGHT+IHKl0yWiRd2X9BT7QHmbwqXcQapdXKP3JRoOLxWgoE89F6/KHnCbOWDBJW7wRV0GtgFlIKx4g== X-Received: by 2002:a2e:b0c3:0:b0:2c5:1702:a434 with SMTP id g3-20020a2eb0c3000000b002c51702a434mr5682437ljl.52.1698040803569; Sun, 22 Oct 2023 23:00:03 -0700 (PDT) Received: from [1.0.0.7] ([178.155.28.40]) by smtp.gmail.com with ESMTPSA id i15-20020a2ea36f000000b002c4fdb0ef12sm1464845ljn.19.2023.10.22.23.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 22 Oct 2023 23:00:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------imMxI55c776aN5QfAclioQhD" Message-ID: <1236e144-d772-7ff4-6e23-4ce91d0923ad@gmail.com> Date: Mon, 23 Oct 2023 09: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 #17893: Assert failed in heap_update()/_delete() when FK modiified by RI trigger in non-read-committed xact Content-Language: en-US From: Alexander Lakhin To: pgsql-bugs@lists.postgresql.org, Andres Freund References: <17893-35847009eec517b5@postgresql.org> 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. --------------imMxI55c776aN5QfAclioQhD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 02.09.2023 16:00, Alexander Lakhin wrote: > > Third, with this change applied I immediately got a failure of the next > assert in heap_delete(): >             Assert(!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid)); > which was introduced by 5db6df0c0. Sorry for my mistake here. I had cited a wrong line. It should be:         Assert(result != TM_Updated ||                !ItemPointerEquals(&tp.t_self, &tp.t_data->t_ctid)); As I still can't see, which cases those asserts intended for, but see cases when they are falsified, I propose removing them. Please look at the complete patch attached. Best regards, Alexander --------------imMxI55c776aN5QfAclioQhD Content-Type: text/x-patch; charset=UTF-8; name="v1-01-fix-asserts-in-heap_update-delete.patch" Content-Disposition: attachment; filename="v1-01-fix-asserts-in-heap_update-delete.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggMTRkZTgxNThkNC4uYjYyNWE4ZTc5 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTI3MjEsOSArMjcyMSw4IEBA IGwxOgogCQkJICAgcmVzdWx0ID09IFRNX1VwZGF0ZWQgfHwKIAkJCSAgIHJlc3VsdCA9PSBU TV9EZWxldGVkIHx8CiAJCQkgICByZXN1bHQgPT0gVE1fQmVpbmdNb2RpZmllZCk7Ci0JCUFz c2VydCghKHRwLnRfZGF0YS0+dF9pbmZvbWFzayAmIEhFQVBfWE1BWF9JTlZBTElEKSk7Ci0J CUFzc2VydChyZXN1bHQgIT0gVE1fVXBkYXRlZCB8fAotCQkJICAgIUl0ZW1Qb2ludGVyRXF1 YWxzKCZ0cC50X3NlbGYsICZ0cC50X2RhdGEtPnRfY3RpZCkpOworCQlBc3NlcnQoISh0cC50 X2RhdGEtPnRfaW5mb21hc2sgJiBIRUFQX1hNQVhfSU5WQUxJRCkgfHwKKwkJCSAgIChyZXN1 bHQgPT0gVE1fVXBkYXRlZCAmJiBjcm9zc2NoZWNrICE9IEludmFsaWRTbmFwc2hvdCkpOwog CQl0bWZkLT5jdGlkID0gdHAudF9kYXRhLT50X2N0aWQ7CiAJCXRtZmQtPnhtYXggPSBIZWFw VHVwbGVIZWFkZXJHZXRVcGRhdGVYaWQodHAudF9kYXRhKTsKIAkJaWYgKHJlc3VsdCA9PSBU TV9TZWxmTW9kaWZpZWQpCkBAIC0zMzQ2LDEwICszMzQ1LDcgQEAgbDI6CiAJewogCQkvKiBQ ZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2sgZm9yIHRyYW5zYWN0aW9uLXNuYXBzaG90IG1vZGUg UkkgdXBkYXRlcyAqLwogCQlpZiAoIUhlYXBUdXBsZVNhdGlzZmllc1Zpc2liaWxpdHkoJm9s ZHR1cCwgY3Jvc3NjaGVjaywgYnVmZmVyKSkKLQkJewogCQkJcmVzdWx0ID0gVE1fVXBkYXRl ZDsKLQkJCUFzc2VydCghSXRlbVBvaW50ZXJFcXVhbHMoJm9sZHR1cC50X3NlbGYsICZvbGR0 dXAudF9kYXRhLT50X2N0aWQpKTsKLQkJfQogCX0KIAogCWlmIChyZXN1bHQgIT0gVE1fT2sp CkBAIC0zMzU4LDkgKzMzNTQsOCBAQCBsMjoKIAkJCSAgIHJlc3VsdCA9PSBUTV9VcGRhdGVk IHx8CiAJCQkgICByZXN1bHQgPT0gVE1fRGVsZXRlZCB8fAogCQkJICAgcmVzdWx0ID09IFRN X0JlaW5nTW9kaWZpZWQpOwotCQlBc3NlcnQoIShvbGR0dXAudF9kYXRhLT50X2luZm9tYXNr ICYgSEVBUF9YTUFYX0lOVkFMSUQpKTsKLQkJQXNzZXJ0KHJlc3VsdCAhPSBUTV9VcGRhdGVk IHx8Ci0JCQkgICAhSXRlbVBvaW50ZXJFcXVhbHMoJm9sZHR1cC50X3NlbGYsICZvbGR0dXAu dF9kYXRhLT50X2N0aWQpKTsKKwkJQXNzZXJ0KCEob2xkdHVwLnRfZGF0YS0+dF9pbmZvbWFz ayAmIEhFQVBfWE1BWF9JTlZBTElEKSB8fAorCQkJICAgKHJlc3VsdCA9PSBUTV9VcGRhdGVk ICYmIGNyb3NzY2hlY2sgIT0gSW52YWxpZFNuYXBzaG90KSk7CiAJCXRtZmQtPmN0aWQgPSBv bGR0dXAudF9kYXRhLT50X2N0aWQ7CiAJCXRtZmQtPnhtYXggPSBIZWFwVHVwbGVIZWFkZXJH ZXRVcGRhdGVYaWQob2xkdHVwLnRfZGF0YSk7CiAJCWlmIChyZXN1bHQgPT0gVE1fU2VsZk1v ZGlmaWVkKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMjMwYmMzOWNjMC4uYWM3YjI3OWYz MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMv aW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCkBAIC0xNDc5LDggKzE0NzksOCBAQCB0YWJsZV9t dWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQg bnNsb3RzLAogICogVE1fQmVpbmdNb2RpZmllZCAodGhlIGxhc3Qgb25seSBwb3NzaWJsZSBp ZiB3YWl0ID09IGZhbHNlKS4KICAqCiAgKiBJbiB0aGUgZmFpbHVyZSBjYXNlcywgdGhlIHJv dXRpbmUgZmlsbHMgKnRtZmQgd2l0aCB0aGUgdHVwbGUncyB0X2N0aWQsCi0gKiB0X3htYXgs IGFuZCwgaWYgcG9zc2libGUsIGFuZCwgaWYgcG9zc2libGUsIHRfY21heC4gIFNlZSBjb21t ZW50cyBmb3IKLSAqIHN0cnVjdCBUTV9GYWlsdXJlRGF0YSBmb3IgYWRkaXRpb25hbCBpbmZv LgorICogdF94bWF4LCBhbmQsIGlmIHBvc3NpYmxlLCB0X2NtYXguICBTZWUgY29tbWVudHMg Zm9yIHN0cnVjdAorICogVE1fRmFpbHVyZURhdGEgZm9yIGFkZGl0aW9uYWwgaW5mby4KICAq Lwogc3RhdGljIGlubGluZSBUTV9SZXN1bHQKIHRhYmxlX3R1cGxlX2RlbGV0ZShSZWxhdGlv biByZWwsIEl0ZW1Qb2ludGVyIHRpZCwgQ29tbWFuZElkIGNpZCwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9may1zbmFwc2hvdC5vdXQgYi9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvZmstc25hcHNob3Qub3V0CmluZGV4IDVmYWY4MGQ2Y2UuLmJk ZDI2YmFjNmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9may1z bmFwc2hvdC5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL2ZrLXNuYXBz aG90Lm91dApAQCAtMTIyLDMgKzEyMiwyNSBAQCBhCiAxCiAoMSByb3cpCiAKKworc3RhcnRp bmcgcGVybXV0YXRpb246IHMyaXAyIHMxYnJyIHMxaWZwMiBzMmJyciBzMmRwMiBzMWMgczJj CitzdGVwIHMyaXAyOiBJTlNFUlQgSU5UTyBwa19ub3BhcnRlZCBWQUxVRVMgKDIpOworc3Rl cCBzMWJycjogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0ZXAg czFpZnAyOiBJTlNFUlQgSU5UTyBma19wYXJ0ZWRfcGsgVkFMVUVTICgyKTsKK3N0ZXAgczJi cnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyZHAy OiBERUxFVEUgRlJPTSBwa19ub3BhcnRlZCBXSEVSRSBhID0gMjsgPHdhaXRpbmcgLi4uPgor c3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAgczJkcDI6IDwuLi4gY29tcGxldGVkPgorRVJST1I6 ICBjb3VsZCBub3Qgc2VyaWFsaXplIGFjY2VzcyBkdWUgdG8gY29uY3VycmVudCB1cGRhdGUK K3N0ZXAgczJjOiBDT01NSVQ7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMmlwMiBzMWJy ciBzMWlmbjIgczJicnIgczJkcDIgczFjIHMyYworc3RlcCBzMmlwMjogSU5TRVJUIElOVE8g cGtfbm9wYXJ0ZWQgVkFMVUVTICgyKTsKK3N0ZXAgczFicnI6IEJFR0lOIElTT0xBVElPTiBM RVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMxaWZuMjogSU5TRVJUIElOVE8gZmtfbm9w YXJ0ZWRfc24gVkFMVUVTICgyKTsKK3N0ZXAgczJicnI6IEJFR0lOIElTT0xBVElPTiBMRVZF TCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyZHAyOiBERUxFVEUgRlJPTSBwa19ub3BhcnRl ZCBXSEVSRSBhID0gMjsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAg czJkcDI6IDwuLi4gY29tcGxldGVkPgorRVJST1I6ICBjb3VsZCBub3Qgc2VyaWFsaXplIGFj Y2VzcyBkdWUgdG8gY29uY3VycmVudCB1cGRhdGUKK3N0ZXAgczJjOiBDT01NSVQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvZmstc25hcHNob3Quc3BlYyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9may1zbmFwc2hvdC5zcGVjCmluZGV4IDM3ODUwN2Zi YzMuLjlmYWQ1N2U3NjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9m ay1zbmFwc2hvdC5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9may1zbmFw c2hvdC5zcGVjCkBAIC0xMyw2ICsxMywxMSBAQCBzZXR1cAogICBDUkVBVEUgVEFCTEUgZmtf bm9wYXJ0ZWQgKAogCWEJCQlpbnQJCVJFRkVSRU5DRVMgZmtfcGFydGVkX3BrIE9OIERFTEVU RSBOTyBBQ1RJT04gSU5JVElBTExZIERFRkVSUkVECiAgICk7CisKKyAgQ1JFQVRFIFRBQkxF IGZrX25vcGFydGVkX3NuICgKKwlhCQkJaW50CQlSRUZFUkVOQ0VTIHBrX25vcGFydGVkIE9O IERFTEVURSBTRVQgTlVMTAorICApOworCiAgIElOU0VSVCBJTlRPIHBrX25vcGFydGVkIFZB TFVFUyAoMSk7CiAgIElOU0VSVCBJTlRPIGZrX3BhcnRlZF9wayBWQUxVRVMgKDEpOwogICBJ TlNFUlQgSU5UTyBma19ub3BhcnRlZCBWQUxVRVMgKDEpOwpAQCAtMjAsNyArMjUsNyBAQCBz ZXR1cAogCiB0ZWFyZG93bgogewotICBEUk9QIFRBQkxFIHBrX25vcGFydGVkLCBma19wYXJ0 ZWRfcGssIGZrX25vcGFydGVkOworICBEUk9QIFRBQkxFIHBrX25vcGFydGVkLCBma19wYXJ0 ZWRfcGssIGZrX25vcGFydGVkLCBma19ub3BhcnRlZF9zbjsKIH0KIAogc2Vzc2lvbiBzMQpA QCAtMjgsNiArMzMsNyBAQCBzdGVwIHMxYnJyCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJF UEVBVEFCTEUgUkVBRDsgfQogc3RlcCBzMWJyYwl7IEJFR0lOIElTT0xBVElPTiBMRVZFTCBS RUFEIENPTU1JVFRFRDsgfQogc3RlcCBzMWlmcDIJeyBJTlNFUlQgSU5UTyBma19wYXJ0ZWRf cGsgVkFMVUVTICgyKTsgfQogc3RlcCBzMWlmcDEJeyBJTlNFUlQgSU5UTyBma19wYXJ0ZWRf cGsgVkFMVUVTICgxKTsgfQorc3RlcCBzMWlmbjIJeyBJTlNFUlQgSU5UTyBma19ub3BhcnRl ZF9zbiBWQUxVRVMgKDIpOyB9CiBzdGVwIHMxZGZwCXsgREVMRVRFIEZST00gZmtfcGFydGVk X3BrIFdIRVJFIGEgPSAxOyB9CiBzdGVwIHMxYwl7IENPTU1JVDsgfQogc3RlcCBzMXNmcAl7 IFNFTEVDVCAqIEZST00gZmtfcGFydGVkX3BrOyB9CkBAIC0zOCw2ICs0NCw3IEBAIHNlc3Np b24gczIKIHN0ZXAgczJicnIJeyBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBS RUFEOyB9CiBzdGVwIHMyYnJjCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFQUQgQ09NTUlU VEVEOyB9CiBzdGVwIHMyaXAyCXsgSU5TRVJUIElOVE8gcGtfbm9wYXJ0ZWQgVkFMVUVTICgy KTsgfQorc3RlcCBzMmRwMgl7IERFTEVURSBGUk9NIHBrX25vcGFydGVkIFdIRVJFIGEgPSAy OyB9CiBzdGVwIHMyaWZuMgl7IElOU0VSVCBJTlRPIGZrX25vcGFydGVkIFZBTFVFUyAoMik7 IH0KIHN0ZXAgczJjCXsgQ09NTUlUOyB9CiBzdGVwIHMyc2ZwCXsgU0VMRUNUICogRlJPTSBm a19wYXJ0ZWRfcGs7IH0KQEAgLTU5LDMgKzY2LDExIEBAIHBlcm11dGF0aW9uIHMxYnJjIHMy YnJjIHMyaXAyIHMxc3AgczJjIHMxc3AgczFpZnAyIHMyYnJjIHMyc2ZwIHMxYyBzMXNmcCBz MmlmbjIKICMgdGhlIHNhbWUgbm8gbWF0dGVyIHRoZSBzbmFwc2hvdCBtb2RlCiBwZXJtdXRh dGlvbiBzMWJyciBzMWRmcCBzMWlmcDEgczFjIHMxc2ZuCiBwZXJtdXRhdGlvbiBzMWJyYyBz MWRmcCBzMWlmcDEgczFjIHMxc2ZuCisKKyMgdHJ5aW5nIHRvIGRlbGV0ZSBhIHJvdyB0aHJv dWdoIERFTEVURSBDQVNDQURFLCB3aGlsc3QgdGhhdCByb3cgaXMgZGVsZXRlZAorIyBpbiBh IGNvbmN1cnJlbnQgdHJhbnNhY3Rpb24KK3Blcm11dGF0aW9uIHMyaXAyIHMxYnJyIHMxaWZw MiBzMmJyciBzMmRwMiBzMWMgczJjCisKKyMgdHJ5aW5nIHRvIHVwZGF0ZSBhIHJvdyB0aHJv dWdoIERFTEVURSBTRVQgTlVMTCwgd2hpbHN0IHRoYXQgcm93IGlzIGRlbGV0ZWQKKyMgaW4g YSBjb25jdXJyZW50IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBzMmlwMiBzMWJyciBzMWlm bjIgczJicnIgczJkcDIgczFjIHMyYwo= --------------imMxI55c776aN5QfAclioQhD--