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 1uLznv-0003Of-DV for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Jun 2025 07:41:55 +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 1uLzf6-008Jmj-5T for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Jun 2025 07:32:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uLzf5-008JmU-Nd for pgsql-hackers@lists.postgresql.org; Mon, 02 Jun 2025 07:32:47 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uLzf3-0019in-12 for pgsql-hackers@lists.postgresql.org; Mon, 02 Jun 2025 07:32:46 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 933B861038; Mon, 2 Jun 2025 16:32:40 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_d082e14ac01932ec14b081d333200ffe" Content-Transfer-Encoding: 7bit Date: Mon, 02 Jun 2025 16:32:40 +0900 From: Masahiro Ikeda To: Fujii Masao Cc: Fujii Masao , Dilip Kumar , Richard Guo , PostgreSQL Hackers Subject: Re: Assertion failure in smgr.c when using pg_prewarm with partitioned tables In-Reply-To: <23d5aea0-be92-4837-a5ee-1bdf0ebc49c5@oss.nttdata.com> References: <1cf7a731-024b-4421-8f09-b67b5c25df93@email.android.com> <591e4384-87c1-46b6-a4f2-144738f24956@oss.nttdata.com> <23d5aea0-be92-4837-a5ee-1bdf0ebc49c5@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <548d2eb7ae9d1ff4c8cc7e4e3251b8d3@oss.nttdata.com> X-Sender: ikedamsh@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_d082e14ac01932ec14b081d333200ffe Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2025-05-30 01:44, Fujii Masao wrote: > I've pushed the 0001 patch. Thanks! Thanks! >>> This is not directly relation to your proposal, but while reading >>> the index_checkable() function, I noticed that ReleaseSysCache() >>> is not called after SearchSysCache1(). Shouldn't we call >>> ReleaseSysCache() here? Alternatively, we could use get_am_name() >>> instead of SearchSysCache1(), which might be simpler. >> >> Agreed. > > I may have been mistaken earlier. Based on the comment in > SearchSysCache(), > the tuple returned by SearchSysCache1() is valid until the end of the > transaction. > Since index_checkable() raises an error and ends the transaction > immediately > after calling SearchSysCache1(), it seems safe to skip > ReleaseSysCache() > in this case. Using get_am_name() instead seems simpler, though. > Thought? As you said, it seems safe since SearchSysCache() is only used for constructing the error message. However, using get_am_name() is simpler and cleaner. >>> I also observed that the error code ERRCODE_FEATURE_NOT_SUPPORTED >>> is used when the relation is not the expected type in >>> index_checkable(). >>> However, based on similar cases (e.g., pgstattuple), it seems that >>> ERRCODE_WRONG_OBJECT_TYPE might be more appropriate in this >>> situation. >>> Thought? >> >> Agreed. I also change the error code to >> ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE >> when the index is not valid. > > +1. > Should we commit patch 0003 before 0002? Also, should we consider > back-patching it? OK, I think v5-0002 should be back-patched, since using incorrect error codes is essentially a bug. Regards, -- Masahiro Ikeda NTT DATA Japan Corporation --=_d082e14ac01932ec14b081d333200ffe Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0002-Fix-incorrect-error-code-in-index_checkable.patch Content-Disposition: attachment; filename=v5-0002-Fix-incorrect-error-code-in-index_checkable.patch; size=1555 RnJvbSA0Y2NiMmRjOTQ3MjcwMDczZjY3NDgxZTczODYyYmI1ZWQ4YzQwYzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8aWtlZGFtc2hAb3NzLm50dGRhdGEu Y29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMTY6MDI6MTcgKzA5MDAKU3ViamVjdDogW1BBVENI IHY1IDEvMl0gRml4IGluY29ycmVjdCBlcnJvciBjb2RlIGluIGluZGV4X2NoZWNrYWJsZSgpLgoK RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQgd2FzIHVzZWQgZm9yIG9iamVjdCB0eXBlCmVy cm9yIGFuZCBpbnZhbGlkIGluZGV4ZXMgZXJyb3IsIHVzZSBwcm9wZXIgZXJyb3IgY29kZXMKaW5z dGVhZC4KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X2NvbW1vbi5jIHwgNCArKy0tCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfY29tbW9uLmMgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5 X2NvbW1vbi5jCmluZGV4IGQwOTVlNjJjZTU1Li41NGY5YzIzMGEzZSAxMDA2NDQKLS0tIGEvY29u dHJpYi9hbWNoZWNrL3ZlcmlmeV9jb21tb24uYworKysgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5 X2NvbW1vbi5jCkBAIC0xNjcsNyArMTY3LDcgQEAgaW5kZXhfY2hlY2thYmxlKFJlbGF0aW9uIHJl bCwgT2lkIGFtX2lkKQogCQlhbXR1cCA9IFNlYXJjaFN5c0NhY2hlMShBTU9JRCwgT2JqZWN0SWRH ZXREYXR1bShhbV9pZCkpOwogCQlhbXR1cHJlbCA9IFNlYXJjaFN5c0NhY2hlMShBTU9JRCwgT2Jq ZWN0SWRHZXREYXR1bShyZWwtPnJkX3JlbC0+cmVsYW0pKTsKIAkJZXJlcG9ydChFUlJPUiwKLQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJIGVycm1zZygiZXhwZWN0ZWQgXCIlc1wi IGluZGV4IGFzIHRhcmdldHMgZm9yIHZlcmlmaWNhdGlvbiIsIE5hbWVTdHIoKChGb3JtX3BnX2Ft KSBHRVRTVFJVQ1QoYW10dXApKS0+YW1uYW1lKSksCiAJCQkJIGVycmRldGFpbCgiUmVsYXRpb24g XCIlc1wiIGlzIGEgJXMgaW5kZXguIiwKIAkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCksIE5hbWVTdHIoKChGb3JtX3BnX2FtKSBHRVRTVFJVQ1QoYW10dXByZWwpKS0+YW1uYW1l KSkpKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBpbmRleF9jaGVja2FibGUoUmVsYXRpb24gcmVsLCBP aWQgYW1faWQpCiAKIAlpZiAoIXJlbC0+cmRfaW5kZXgtPmluZGlzdmFsaWQpCiAJCWVyZXBvcnQo RVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJ CSBlcnJtc2coImNhbm5vdCBjaGVjayBpbmRleCBcIiVzXCIiLAogCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSksCiAJCQkJIGVycmRldGFpbCgiSW5kZXggaXMgbm90IHZhbGlkLiIp KSk7Ci0tIAoyLjM0LjEKCg== --=_d082e14ac01932ec14b081d333200ffe Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0003-Refactor-and-improve-error-messages-in-index_chec.patch Content-Disposition: attachment; filename=v5-0003-Refactor-and-improve-error-messages-in-index_chec.patch; size=3846 RnJvbSBmNTM5OTI3ODNlMWI4ZTU5MTViZDA3NmVlZWIwNzFlZjk4MDUxYWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlybyBJa2VkYSA8aWtlZGFtc2hAb3NzLm50dGRhdGEu Y29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMTY6MDc6MjIgKzA5MDAKU3ViamVjdDogW1BBVENI IHY1IDIvMl0gUmVmYWN0b3IgYW5kIGltcHJvdmUgZXJyb3IgbWVzc2FnZXMgaW4KIGluZGV4X2No ZWNrYWJsZSgpLgoKUmVmYWN0b3IgdGhlIGZ1bmN0aW9uIHRvIHVzZSBnZXRfYW1fbmFtZSgpIGFu ZCBpbXByb3ZlIGVycm9yCm1lc3NhZ2VzIGZvciBwYXJ0aXRpb25lZCBpbmRleGVzLgotLS0KIGNv bnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19idHJlZS5vdXQgfCAgOCArKysrKysrKwogY29u dHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5zcWwgICAgICB8ICA3ICsrKysrKysKIGNvbnRy aWIvYW1jaGVjay92ZXJpZnlfY29tbW9uLmMgICAgICAgICAgfCAxOSArKysrKysrKystLS0tLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19idHJlZS5vdXQgYi9j b250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0CmluZGV4IGM2ZjRiMTZjNTU2 Li42NTU4ZjJjNWE0ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNr X2J0cmVlLm91dAorKysgYi9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0 CkBAIC02MCw2ICs2MCwxNCBAQCBTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCdidHRlc3Rf YV9icmluX2lkeCcpOwogRVJST1I6ICBleHBlY3RlZCAiYnRyZWUiIGluZGV4IGFzIHRhcmdldHMg Zm9yIHZlcmlmaWNhdGlvbgogREVUQUlMOiAgUmVsYXRpb24gImJ0dGVzdF9hX2JyaW5faWR4IiBp cyBhIGJyaW4gaW5kZXguCiBST0xMQkFDSzsKKy0tIHZlcmlmeSBwYXJ0aXRpb25lZCBpbmRleGVz IGFyZSByZWplY3RlZCAoZXJyb3IpCitCRUdJTjsKK0NSRUFURSBUQUJMRSBidHRlc3RfcGFydGl0 aW9uZWQgKGEgaW50LCBiIGludCkgUEFSVElUSU9OIEJZIGxpc3QgKGEpOworQ1JFQVRFIElOREVY IGJ0dGVzdF9idHJlZV9wYXJ0aXRpb25lZF9pZHggT04gYnR0ZXN0X3BhcnRpdGlvbmVkIFVTSU5H IGJ0cmVlIChiKTsKK1NFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ2J0dGVzdF9idHJlZV9w YXJ0aXRpb25lZF9pZHgnKTsKK0VSUk9SOiAgZXhwZWN0ZWQgaW5kZXggYXMgdGFyZ2V0cyBmb3Ig dmVyaWZpY2F0aW9uCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZv ciBwYXJ0aXRpb25lZCBpbmRleGVzLgorUk9MTEJBQ0s7CiAtLSBub3JtYWwgY2hlY2sgb3V0c2lk ZSBvZiB4YWN0CiBTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ2J0dGVzdF9hX2lkeCcpOwogIGJ0X2lu ZGV4X2NoZWNrIApkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5z cWwgYi9jb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2J0cmVlLnNxbAppbmRleCAwNzkzZGJmZWVi ZC4uMTcxZjdmNjkxZWMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnRy ZWUuc3FsCisrKyBiL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnRyZWUuc3FsCkBAIC01Miw2 ICs1MiwxMyBAQCBDUkVBVEUgSU5ERVggYnR0ZXN0X2FfYnJpbl9pZHggT04gYnR0ZXN0X2EgVVNJ TkcgYnJpbihpZCk7CiBTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCdidHRlc3RfYV9icmlu X2lkeCcpOwogUk9MTEJBQ0s7CiAKKy0tIHZlcmlmeSBwYXJ0aXRpb25lZCBpbmRleGVzIGFyZSBy ZWplY3RlZCAoZXJyb3IpCitCRUdJTjsKK0NSRUFURSBUQUJMRSBidHRlc3RfcGFydGl0aW9uZWQg KGEgaW50LCBiIGludCkgUEFSVElUSU9OIEJZIGxpc3QgKGEpOworQ1JFQVRFIElOREVYIGJ0dGVz dF9idHJlZV9wYXJ0aXRpb25lZF9pZHggT04gYnR0ZXN0X3BhcnRpdGlvbmVkIFVTSU5HIGJ0cmVl IChiKTsKK1NFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ2J0dGVzdF9idHJlZV9wYXJ0aXRp b25lZF9pZHgnKTsKK1JPTExCQUNLOworCiAtLSBub3JtYWwgY2hlY2sgb3V0c2lkZSBvZiB4YWN0 CiBTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ2J0dGVzdF9hX2lkeCcpOwogLS0gbW9yZSBleHBhbnNp dmUgdGVzdHMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfY29tbW9uLmMgYi9j b250cmliL2FtY2hlY2svdmVyaWZ5X2NvbW1vbi5jCmluZGV4IDU0ZjljMjMwYTNlLi4yMmRkYTlh ZmRkZCAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9jb21tb24uYworKysgYi9j b250cmliL2FtY2hlY2svdmVyaWZ5X2NvbW1vbi5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVk ZSAidmVyaWZ5X2NvbW1vbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvaW5kZXguaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVk ZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTE1OCwyMCArMTU5LDE4IEBAIGFtY2hlY2tfbG9ja19y ZWxhdGlvbl9hbmRfY2hlY2soT2lkIGluZHJlbGlkLAogYm9vbAogaW5kZXhfY2hlY2thYmxlKFJl bGF0aW9uIHJlbCwgT2lkIGFtX2lkKQogewotCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBS RUxLSU5EX0lOREVYIHx8Ci0JCXJlbC0+cmRfcmVsLT5yZWxhbSAhPSBhbV9pZCkKLQl7Ci0JCUhl YXBUdXBsZQlhbXR1cDsKLQkJSGVhcFR1cGxlCWFtdHVwcmVsOworCWlmIChyZWwtPnJkX3JlbC0+ cmVsa2luZCAhPSBSRUxLSU5EX0lOREVYKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImV4cGVjdGVkIGluZGV4 IGFzIHRhcmdldHMgZm9yIHZlcmlmaWNhdGlvbiIpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9u b3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCi0JCWFtdHVwID0gU2VhcmNo U3lzQ2FjaGUxKEFNT0lELCBPYmplY3RJZEdldERhdHVtKGFtX2lkKSk7Ci0JCWFtdHVwcmVsID0g U2VhcmNoU3lzQ2FjaGUxKEFNT0lELCBPYmplY3RJZEdldERhdHVtKHJlbC0+cmRfcmVsLT5yZWxh bSkpOworCWlmIChyZWwtPnJkX3JlbC0+cmVsYW0gIT0gYW1faWQpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygi ZXhwZWN0ZWQgXCIlc1wiIGluZGV4IGFzIHRhcmdldHMgZm9yIHZlcmlmaWNhdGlvbiIsIE5hbWVT dHIoKChGb3JtX3BnX2FtKSBHRVRTVFJVQ1QoYW10dXApKS0+YW1uYW1lKSksCisJCQkJIGVycm1z ZygiZXhwZWN0ZWQgXCIlc1wiIGluZGV4IGFzIHRhcmdldHMgZm9yIHZlcmlmaWNhdGlvbiIsIGdl dF9hbV9uYW1lKGFtX2lkKSksCiAJCQkJIGVycmRldGFpbCgiUmVsYXRpb24gXCIlc1wiIGlzIGEg JXMgaW5kZXguIiwKLQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIE5hbWVT dHIoKChGb3JtX3BnX2FtKSBHRVRTVFJVQ1QoYW10dXByZWwpKS0+YW1uYW1lKSkpKTsKLQl9CisJ CQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCBnZXRfYW1fbmFtZShyZWwtPnJk X3JlbC0+cmVsYW0pKSkpOwogCiAJaWYgKFJFTEFUSU9OX0lTX09USEVSX1RFTVAocmVsKSkKIAkJ ZXJlcG9ydChFUlJPUiwKLS0gCjIuMzQuMQoK --=_d082e14ac01932ec14b081d333200ffe--