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 1rDTYx-0028Jj-QK for pgsql-bugs@arkaria.postgresql.org; Wed, 13 Dec 2023 18:02:27 +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 1rDTYw-00GMNr-H8 for pgsql-bugs@arkaria.postgresql.org; Wed, 13 Dec 2023 18:02:26 +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 1rDTWj-00GKUJ-O1 for pgsql-bugs@lists.postgresql.org; Wed, 13 Dec 2023 18:00:09 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rDTWh-00AEXr-2S for pgsql-bugs@lists.postgresql.org; Wed, 13 Dec 2023 18:00:08 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-50bf3efe2cbso8374657e87.2 for ; Wed, 13 Dec 2023 10:00:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702490405; x=1703095205; darn=lists.postgresql.org; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=ttFKKIbm3xqrF31C2YAQuUbnWlnt7FVS8tOoFStN3XI=; b=GrU/qWFmVRxauDyYJo3+LMbzhm4l3ttQ3+BiKFiMjvV0KqUb9V2DTCyOnUFT4y9VM8 WQPTzW/xbKOQoDsutYGOnPNJH3yyVz+a79hmsxQn5cQ6qHVlG/bPFV6kFGzFSNVbVeXr 82RJp/RP92acSFH2oAOQAbOnYI9fq9uuM7QnWVjsG+Crq/dt8fZ2ss6vVD1rKWJIblGg ZK0F+SEiV3fwqDziYeiMdchbvaqsDYXweCgPhGT+1tZLE2LRlLW5kexPhRm9Pw9q/BZ7 6L3WvXSnbGbhhhXs6xn36lT4pEh7RDhTaF5q4bLiuvl9vZk2jfQGia3pYfijQJCGnUem cgig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702490405; x=1703095205; h=in-reply-to:from:references: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=ttFKKIbm3xqrF31C2YAQuUbnWlnt7FVS8tOoFStN3XI=; b=wSX/EpVondBrIpX3iQFjvHmti0ypNJaCFy9YMhvC3CacusKHBjzbzqmrYjjhuQTTk+ qM5bqFCGRGBse0MXpd8Vwlumh+ciQOgxikLBNgx39PbrR+Pb84v4TeDdLjlFKRVyodK0 oDhbdE7q6rIgfxFb/+2py2kOAPV4IbjqLl5hhhca1mcSDw0hD9Cz1/Bre/e+x/M4RL8I IHAs+G221q/DZ9yVSPUaiWGU8kmipyDmP3oAjN6IblQN2sxia2PXCJXzpYES93wnNEaM 6iZkO8EToVwCUDKtStPbw+Hf9bl/fZrfpOd+pWT2JvgW0m38IiEwiVdCdTgQvnSoIL0h Kq+w== X-Gm-Message-State: AOJu0YyNCdXJQblckPXIZPvdKG+YqzbHjehYpaYVBl4PXb3p6NGMdQW+ GeipmT0nY0OtFcy1WKrEv6eChivHdzAFhw== X-Google-Smtp-Source: AGHT+IGHm18GPTuCaRap8ryNvBsOXGGRPbhnYUGwvCeLPBUP8mf+3v2U1etNSuTxwy1uWNyLPApgBQ== X-Received: by 2002:a05:6512:3a8f:b0:50b:e45c:e843 with SMTP id q15-20020a0565123a8f00b0050be45ce843mr2145141lfu.235.1702490405090; Wed, 13 Dec 2023 10:00:05 -0800 (PST) Received: from [1.0.0.7] ([178.155.26.88]) by smtp.gmail.com with ESMTPSA id p22-20020a056512329600b0050bfbf0147csm1655929lfe.264.2023.12.13.10.00.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Dec 2023 10:00:03 -0800 (PST) Content-Type: multipart/mixed; boundary="------------eUnOZb50M35JaLtAAjwvcXzt" Message-ID: <876b6e52-f068-648a-3f0e-7eaabd57cf77@gmail.com> Date: Wed, 13 Dec 2023 21: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 #18246: pgstathashindex() attempts to read invalid file for hash index attached to partitioned table Content-Language: en-US To: Michael Paquier , pgsql-bugs@lists.postgresql.org References: <18246-f4d9ff7cb3af77e6@postgresql.org> 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. --------------eUnOZb50M35JaLtAAjwvcXzt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello Michael, 13.12.2023 17:18, Michael Paquier wrote: > On Wed, Dec 13, 2023 at 09:00:01AM +0000, PG Bug reporting form wrote: >> This anomaly can be observed since 8b08f7d48 from 2018-01-19, but IMO the >> culprit is e759854a0 from 2017-02-03, which introduced the following >> asymmetry in pgstatindex.c: >> if (!IS_INDEX(rel) || !IS_BTREE(rel)) >> if (!IS_INDEX(rel) || !IS_GIN(rel)) >> But: >> if (!IS_HASH(rel)) > Fun, let's fix that. Would you like to write a patch? Yes, please look at the attached, I've decided to change also index_open() -> relation_open() because index_open() only adds a check, that is not suitable for this concrete case, so there is no much sense to use the different function. (In fact, that check was good enough at the time of e759854a0, but 8b08f7d48 changed it.) As a result, error messages for hash indexes are becoming consistent with other indexes. Also I've added a test case for the issue, but maybe it's superfluous... Best regards, Alexander --------------eUnOZb50M35JaLtAAjwvcXzt Content-Type: text/x-patch; charset=UTF-8; name="v1-fix-pgstathashindex.patch" Content-Disposition: attachment; filename="v1-fix-pgstathashindex.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvZXhwZWN0ZWQvcGdzdGF0dHVwbGUu b3V0IGIvY29udHJpYi9wZ3N0YXR0dXBsZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQKaW5k ZXggZTRhYzg2ZjllMy4uMjgzODU2ZTEwOSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0 dXBsZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQKKysrIGIvY29udHJpYi9wZ3N0YXR0dXBs ZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQKQEAgLTE1Myw2ICsxNTMsNyBAQCBFUlJPUjog IHJlbGF0aW9uICJ0ZXN0X2hhc2hpZHgiIGlzIG5vdCBhIEdJTiBpbmRleAogLS0gY2hlY2sg dGhhdCB1c2luZyBhbnkgb2YgdGhlc2UgZnVuY3Rpb25zIHdpdGggdW5zdXBwb3J0ZWQgcmVs YXRpb25zIHdpbGwgZmFpbAogY3JlYXRlIHRhYmxlIHRlc3RfcGFydGl0aW9uZWQgKGEgaW50 KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwogY3JlYXRlIGluZGV4IHRlc3RfcGFydGl0aW9u ZWRfaW5kZXggb24gdGVzdF9wYXJ0aXRpb25lZChhKTsKK2NyZWF0ZSBpbmRleCB0ZXN0X3Bh cnRpdGlvbmVkX2hhc2hfaW5kZXggb24gdGVzdF9wYXJ0aXRpb25lZCB1c2luZyBoYXNoKGEp OwogLS0gdGhlc2Ugc2hvdWxkIGFsbCBmYWlsCiBzZWxlY3QgcGdzdGF0dHVwbGUoJ3Rlc3Rf cGFydGl0aW9uZWQnKTsKIEVSUk9SOiAgY2Fubm90IGdldCB0dXBsZS1sZXZlbCBzdGF0aXN0 aWNzIGZvciByZWxhdGlvbiAidGVzdF9wYXJ0aXRpb25lZCIKQEAgLTE3MSw3ICsxNzIsOSBA QCBFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSBidHJlZSBp bmRleAogc2VsZWN0IHBnc3RhdGdpbmluZGV4KCd0ZXN0X3BhcnRpdGlvbmVkJyk7CiBFUlJP UjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSBHSU4gaW5kZXgKIHNl bGVjdCBwZ3N0YXRoYXNoaW5kZXgoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKLUVSUk9SOiAgInRl c3RfcGFydGl0aW9uZWQiIGlzIG5vdCBhbiBpbmRleAorRVJST1I6ICByZWxhdGlvbiAidGVz dF9wYXJ0aXRpb25lZCIgaXMgbm90IGEgaGFzaCBpbmRleAorc2VsZWN0IHBnc3RhdGhhc2hp bmRleCgndGVzdF9wYXJ0aXRpb25lZF9oYXNoX2luZGV4Jyk7CitFUlJPUjogIHJlbGF0aW9u ICJ0ZXN0X3BhcnRpdGlvbmVkX2hhc2hfaW5kZXgiIGlzIG5vdCBhIGhhc2ggaW5kZXgKIGNy ZWF0ZSB2aWV3IHRlc3RfdmlldyBhcyBzZWxlY3QgMTsKIC0tIHRoZXNlIHNob3VsZCBhbGwg ZmFpbAogc2VsZWN0IHBnc3RhdHR1cGxlKCd0ZXN0X3ZpZXcnKTsKQEAgLTE4OCw3ICsxOTEs NyBAQCBFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3ZpZXciIGlzIG5vdCBhIGJ0cmVlIGluZGV4 CiBzZWxlY3QgcGdzdGF0Z2luaW5kZXgoJ3Rlc3RfdmlldycpOwogRVJST1I6ICByZWxhdGlv biAidGVzdF92aWV3IiBpcyBub3QgYSBHSU4gaW5kZXgKIHNlbGVjdCBwZ3N0YXRoYXNoaW5k ZXgoJ3Rlc3RfdmlldycpOwotRVJST1I6ICAidGVzdF92aWV3IiBpcyBub3QgYW4gaW5kZXgK K0VSUk9SOiAgcmVsYXRpb24gInRlc3RfdmlldyIgaXMgbm90IGEgaGFzaCBpbmRleAogY3Jl YXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVyIGR1bW15OwogY3JlYXRlIHNlcnZlciBkdW1teV9z ZXJ2ZXIgZm9yZWlnbiBkYXRhIHdyYXBwZXIgZHVtbXk7CiBjcmVhdGUgZm9yZWlnbiB0YWJs ZSB0ZXN0X2ZvcmVpZ25fdGFibGUgKCkgc2VydmVyIGR1bW15X3NlcnZlcjsKQEAgLTIwNyw3 ICsyMTAsNyBAQCBFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5v dCBhIGJ0cmVlIGluZGV4CiBzZWxlY3QgcGdzdGF0Z2luaW5kZXgoJ3Rlc3RfZm9yZWlnbl90 YWJsZScpOwogRVJST1I6ICByZWxhdGlvbiAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3Qg YSBHSU4gaW5kZXgKIHNlbGVjdCBwZ3N0YXRoYXNoaW5kZXgoJ3Rlc3RfZm9yZWlnbl90YWJs ZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3QgYW4gaW5kZXgKK0VS Uk9SOiAgcmVsYXRpb24gInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgbm90IGEgaGFzaCBpbmRl eAogLS0gYSBwYXJ0aXRpb24gb2YgYSBwYXJ0aXRpb25lZCB0YWJsZSBzaG91bGQgd29yayB0 aG91Z2gKIGNyZWF0ZSB0YWJsZSB0ZXN0X3BhcnRpdGlvbiBwYXJ0aXRpb24gb2YgdGVzdF9w YXJ0aXRpb25lZCBmb3IgdmFsdWVzIGZyb20gKDEpIHRvICgxMDApOwogc2VsZWN0IHBnc3Rh dHR1cGxlKCd0ZXN0X3BhcnRpdGlvbicpOwpAQCAtMjUzLDcgKzI1Niw3IEBAIEVSUk9SOiAg cmVsYXRpb24gInRlc3RfcGFydGl0aW9uIiBpcyBub3QgYSBidHJlZSBpbmRleAogc2VsZWN0 IHBnc3RhdGdpbmluZGV4KCd0ZXN0X3BhcnRpdGlvbicpOwogRVJST1I6ICByZWxhdGlvbiAi dGVzdF9wYXJ0aXRpb24iIGlzIG5vdCBhIEdJTiBpbmRleAogc2VsZWN0IHBnc3RhdGhhc2hp bmRleCgndGVzdF9wYXJ0aXRpb24nKTsKLUVSUk9SOiAgInRlc3RfcGFydGl0aW9uIiBpcyBu b3QgYW4gaW5kZXgKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfcGFydGl0aW9uIiBpcyBub3Qg YSBoYXNoIGluZGV4CiAtLSBhbiBhY3R1YWwgaW5kZXggb2YgYSBwYXJ0aXRpb25lZCB0YWJs ZSBzaG91bGQgd29yayB0aG91Z2gKIGNyZWF0ZSBpbmRleCB0ZXN0X3BhcnRpdGlvbl9pZHgg b24gdGVzdF9wYXJ0aXRpb24oYSk7CiBjcmVhdGUgaW5kZXggdGVzdF9wYXJ0aXRpb25faGFz aF9pZHggb24gdGVzdF9wYXJ0aXRpb24gdXNpbmcgaGFzaCAoYSk7CmRpZmYgLS1naXQgYS9j b250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdGluZGV4LmMgYi9jb250cmliL3Bnc3RhdHR1cGxl L3Bnc3RhdGluZGV4LmMKaW5kZXggOGU1YTRkNmE2Ni4uNWMwNmJhNmRiNCAxMDA2NDQKLS0t IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXRpbmRleC5jCisrKyBiL2NvbnRyaWIvcGdz dGF0dHVwbGUvcGdzdGF0aW5kZXguYwpAQCAtNjAwLDEwICs2MDAsOSBAQCBwZ3N0YXRoYXNo aW5kZXgoUEdfRlVOQ1RJT05fQVJHUykKIAlmbG9hdDgJCWZyZWVfcGVyY2VudDsKIAl1aW50 NjQJCXRvdGFsX3NwYWNlOwogCi0JcmVsID0gaW5kZXhfb3BlbihyZWxpZCwgQWNjZXNzU2hh cmVMb2NrKTsKKwlyZWwgPSByZWxhdGlvbl9vcGVuKHJlbGlkLCBBY2Nlc3NTaGFyZUxvY2sp OwogCi0JLyogaW5kZXhfb3BlbigpIGNoZWNrcyB0aGF0IGl0J3MgYW4gaW5kZXggKi8KLQlp ZiAoIUlTX0hBU0gocmVsKSkKKwlpZiAoIUlTX0lOREVYKHJlbCkgfHwgIUlTX0hBU0gocmVs KSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVD VF9UWVBFKSwKIAkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgaGFzaCBp bmRleCIsCmRpZmYgLS1naXQgYS9jb250cmliL3Bnc3RhdHR1cGxlL3NxbC9wZ3N0YXR0dXBs ZS5zcWwgYi9jb250cmliL3Bnc3RhdHR1cGxlL3NxbC9wZ3N0YXR0dXBsZS5zcWwKaW5kZXgg NTExMWJlMGU2Mi4uYjA4YzMxYzIxYiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0dXBs ZS9zcWwvcGdzdGF0dHVwbGUuc3FsCisrKyBiL2NvbnRyaWIvcGdzdGF0dHVwbGUvc3FsL3Bn c3RhdHR1cGxlLnNxbApAQCAtNjUsNiArNjUsNyBAQCBzZWxlY3QgcGdzdGF0Z2luaW5kZXgo J3Rlc3RfaGFzaGlkeCcpOwogLS0gY2hlY2sgdGhhdCB1c2luZyBhbnkgb2YgdGhlc2UgZnVu Y3Rpb25zIHdpdGggdW5zdXBwb3J0ZWQgcmVsYXRpb25zIHdpbGwgZmFpbAogY3JlYXRlIHRh YmxlIHRlc3RfcGFydGl0aW9uZWQgKGEgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwog Y3JlYXRlIGluZGV4IHRlc3RfcGFydGl0aW9uZWRfaW5kZXggb24gdGVzdF9wYXJ0aXRpb25l ZChhKTsKK2NyZWF0ZSBpbmRleCB0ZXN0X3BhcnRpdGlvbmVkX2hhc2hfaW5kZXggb24gdGVz dF9wYXJ0aXRpb25lZCB1c2luZyBoYXNoKGEpOwogLS0gdGhlc2Ugc2hvdWxkIGFsbCBmYWls CiBzZWxlY3QgcGdzdGF0dHVwbGUoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKIHNlbGVjdCBwZ3N0 YXR0dXBsZSgndGVzdF9wYXJ0aXRpb25lZF9pbmRleCcpOwpAQCAtNzMsNiArNzQsNyBAQCBz ZWxlY3QgcGdfcmVscGFnZXMoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKIHNlbGVjdCBwZ3N0YXRp bmRleCgndGVzdF9wYXJ0aXRpb25lZCcpOwogc2VsZWN0IHBnc3RhdGdpbmluZGV4KCd0ZXN0 X3BhcnRpdGlvbmVkJyk7CiBzZWxlY3QgcGdzdGF0aGFzaGluZGV4KCd0ZXN0X3BhcnRpdGlv bmVkJyk7CitzZWxlY3QgcGdzdGF0aGFzaGluZGV4KCd0ZXN0X3BhcnRpdGlvbmVkX2hhc2hf aW5kZXgnKTsKIAogY3JlYXRlIHZpZXcgdGVzdF92aWV3IGFzIHNlbGVjdCAxOwogLS0gdGhl c2Ugc2hvdWxkIGFsbCBmYWlsCg== --------------eUnOZb50M35JaLtAAjwvcXzt--