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 1pryQ5-0006Qv-Sq for pgsql-bugs@arkaria.postgresql.org; Thu, 27 Apr 2023 10:00:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pryQ4-0002rM-0G for pgsql-bugs@arkaria.postgresql.org; Thu, 27 Apr 2023 10:00:08 +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 1pryQ3-0002rB-Ml for pgsql-bugs@lists.postgresql.org; Thu, 27 Apr 2023 10:00:07 +0000 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1pryQ0-005M7d-KY for pgsql-bugs@lists.postgresql.org; Thu, 27 Apr 2023 10:00:06 +0000 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-4ec8149907aso9078949e87.1 for ; Thu, 27 Apr 2023 03:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682589603; x=1685181603; 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=n5WA4ocnWGwfNBp04VULmmAlr+FptN39Kwy5rlzMriM=; b=KzVJH6wRf1FFxAuXylep2nQbfum90z0UGT61Rdqs13IZ76uQ6bSUlAcxJcBl7bCBU8 nOCxIZ0KoMakADkjBhIoEiJfs+Uz5jYx5nLfvPFlNPokHdrFWX5MgQUzBsvQGmmnAZkZ v6Bu6Ja4/6IjXEFlMLUbosDdJ85GF5w7DbsVkiv6LBsrj/eB0wDxzpHHvl9zqCaaN1HP ZYAvDc2wkkqQALGEmi5ZXy7DVgD16Rg5wLtQP7hHZDys4VziVjwAYmAV4zOxrhGa/64l 7P+HIWcaSAYLlbKAMQ8tNfD/cuAMG06C8IK90HRUclaZ+jmXEQTxgW1bnLMUF+tOba9R eBoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682589603; x=1685181603; 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=n5WA4ocnWGwfNBp04VULmmAlr+FptN39Kwy5rlzMriM=; b=M46TLAV9L5RvMi0S6cvC83DixRG8pgAGGxPC1s2LbLShwlc7hOg11ohu9ZCn9p5etr oF/nMLrMaZECbeb7p5tewvqMhGxSdScGvvnMQJGsVivmoYUOux5R0vxAwMrlMCSSynMI 5JC305TMp5TQ/UMdf/QhDXnQmiGi4+EW0gebpDZHSb+GpI81NL+HM+ln1wiS4r3HWLcf zaf9gJJcQK39jEgDIyUZ3URkHrQhkgzuKxJLBLxG2oVa2jiUC5L2F2z1PaUJOKT0mqrv R4SmScCei4GZ+w53mB725/qBzq4QlXpda5DTqAszQErd3WhaYvXFpHZLHwFH4I/OyBno AkcQ== X-Gm-Message-State: AC+VfDzPOC7xRSGZ6w4fI3Ot2f25SC6LhZZqrYOtvXUHgIOVt3F+wAQ3 9iqiVDNzx164iwc+1hfJHME= X-Google-Smtp-Source: ACHHUZ46ALLaoXcrvpIP3lqRlT5JFQUDxhf2g4usKn2QKwOKYVI7YlVCUw9q7u1rwy0IKnR5fITVBA== X-Received: by 2002:ac2:488e:0:b0:4e0:a426:6ddc with SMTP id x14-20020ac2488e000000b004e0a4266ddcmr395790lfc.0.1682589602527; Thu, 27 Apr 2023 03:00:02 -0700 (PDT) Received: from [1.0.0.7] ([178.155.28.115]) by smtp.gmail.com with ESMTPSA id r3-20020ac252a3000000b004e90dee5469sm2858323lfm.157.2023.04.27.03.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 Apr 2023 03:00:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------cUnHBTIt6ggUhlEoegp3Mt0N" Message-ID: Date: Thu, 27 Apr 2023 13: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 #17804: Assertion failed in pg_stat after fetching from pg_stat_database and switching cache->snapshot Content-Language: en-US From: Alexander Lakhin To: Kyotaro Horiguchi , pgsql-bugs@lists.postgresql.org References: <17804-2a118cd046f2d0e5@postgresql.org> <20230224.160812.1001813717917457753.horikyota.ntt@gmail.com> <1836967a-9f78-aed8-1ff1-3351c504e8f0@gmail.com> In-Reply-To: <1836967a-9f78-aed8-1ff1-3351c504e8f0@gmail.com> 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. --------------cUnHBTIt6ggUhlEoegp3Mt0N Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, 24.02.2023 19:00, Alexander Lakhin wrote: > Hello Kyotaro-san, > 24.02.2023 10:08, Kyotaro Horiguchi wrote: >> Thanks for the report!  We didn't consider the case that variable is >> changed in-transaction. >> >> >> What are your thoughts on this? > What if we implement assign_pgstat_fetch_consistency() and execute > pgstat_clear_snapshot() in it when the mode switch happens (to avoid > possible inconsistency between the GUC and the current pgstat state)? Please look at the attached patch, which implements that idea and also includes a simple test. The behavior change doesn't affect any of existing tests and seems natural to me, so I haven't added a note about it in the docs. Best regards, Alexander --------------cUnHBTIt6ggUhlEoegp3Mt0N Content-Type: text/x-patch; charset=UTF-8; name="v1-01-fix-pgstat-sfc.patch" Content-Disposition: attachment; filename="v1-01-fix-pgstat-sfc.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXggYjEyNTgwMmIyMS4uNGVk ZGVjYWE3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTEwMyw3 ICsxMDMsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9wZ19zaG1lbS5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKLSNpbmNsdWRl ICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCIKICNpbmNsdWRl ICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3Bnc3RhdF9pbnRlcm5hbC5o IgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgpAQCAtMTY3MSwzICsxNjcxLDE3IEBA IHBnc3RhdF9yZXNldF9hZnRlcl9mYWlsdXJlKHZvaWQpCiAJLyogYW5kIGRyb3AgdmFyaWFi bGUtbnVtYmVyZWQgb25lcyAqLwogCXBnc3RhdF9kcm9wX2FsbF9lbnRyaWVzKCk7CiB9CisK Ky8qCisgKiBHVUMgYXNzaWduX2hvb2sgZm9yIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5Cisg Ki8KK3ZvaWQKK2Fzc2lnbl9zdGF0c19mZXRjaF9jb25zaXN0ZW5jeShpbnQgbmV3dmFsLCB2 b2lkICpleHRyYSkKK3sKKwkvKgorCSAqIE11c3QgY2xlYXIgdGhlIHNuYXBzaG90IHdoZW4g Y2hhbmdpbmcgdGhlIGNvbnNpc3RlbmN5IG1vZGUsIHRvIGF2b2lkCisJICogZGlzY3JlcGFu Y2llcyBiZXR3ZWVuIHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSBhbmQgdGhlIHNuYXBzaG90 IHN0YXRlLgorCSAqLworCWlmIChwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgIT0gbmV3dmFs KQorCQlwZ3N0YXRfY2xlYXJfc25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfdGFibGVzLmMKaW5kZXggMmY0MmNlYmFmNi4uNWY5MGFlY2Q0NyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTQ4MjEsNyArNDgyMSw3IEBAIHN0cnVjdCBj b25maWdfZW51bSBDb25maWd1cmVOYW1lc0VudW1bXSA9CiAJCX0sCiAJCSZwZ3N0YXRfZmV0 Y2hfY29uc2lzdGVuY3ksCiAJCVBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9DQUNIRSwgc3Rh dHNfZmV0Y2hfY29uc2lzdGVuY3ksCi0JCU5VTEwsIE5VTEwsIE5VTEwKKwkJTlVMTCwgYXNz aWduX3N0YXRzX2ZldGNoX2NvbnNpc3RlbmN5LCBOVUxMCiAJfSwKIAogCXsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMv Z3VjX2hvb2tzLmgKaW5kZXggYTgyYTg1Yzk0MC4uMmVjYjlmYzA4NiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv Z3VjX2hvb2tzLmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBleHRlcm4gdm9pZCBhc3NpZ25fc2Vh cmNoX3BhdGgoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSk7CiBleHRlcm4gYm9v bCBjaGVja19zZXNzaW9uX2F1dGhvcml6YXRpb24oY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKIGV4dGVybiB2b2lkIGFzc2lnbl9zZXNzaW9uX2F1 dGhvcml6YXRpb24oY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSk7CiBleHRlcm4g dm9pZCBhc3NpZ25fc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlKGludCBuZXd2YWwsIHZvaWQg KmV4dHJhKTsKK2V4dGVybiB2b2lkIGFzc2lnbl9zdGF0c19mZXRjaF9jb25zaXN0ZW5jeShp bnQgbmV3dmFsLCB2b2lkICpleHRyYSk7CiBleHRlcm4gYm9vbCBjaGVja19zc2woYm9vbCAq bmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwogZXh0ZXJuIGJvb2wg Y2hlY2tfc3RhZ2VfbG9nX3N0YXRzKGJvb2wgKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNT b3VyY2Ugc291cmNlKTsKIGV4dGVybiBib29sIGNoZWNrX3N5bmNocm9ub3VzX3N0YW5kYnlf bmFtZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N0YXRzLm91dAppbmRleCA4MTNkNmQzOWVhLi5iYjc0M2FlMTVlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N0YXRzLm91dApAQCAtOTg1LDYgKzk4NSwzNSBAQCBTRUxFQ1Qg cGdfc3RhdF9nZXRfc25hcHNob3RfdGltZXN0YW1wKCk7CiAKIENPTU1JVDsKIC0tLS0KKy0t IENoYW5naW5nIGZldGNoIGNvbnNpc3RlbmN5IG1vZGUgaW5zaWRlIHRyYW5zYWN0aW9uCist LS0tCitCRUdJTjsKK1NFVCBMT0NBTCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IGNhY2hl OworLS0gZmlsbGluZyBzdGF0cyBmb3IgdGhlIGNhY2hlIG1vZGUKK1NFTEVDVCBwZ19zdGF0 X2dldF9mdW5jdGlvbl9jYWxscygwKTsKKyBwZ19zdGF0X2dldF9mdW5jdGlvbl9jYWxscyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitTRVQgTE9DQUwgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBz bmFwc2hvdDsKKy0tIHZlcmlmeSB0aGF0IHRoZXJlIGlzIG5vIGZhaWx1cmUgb24gYWNjZXNz aW5nIHByZS1leGlzdGluZyBzbmFwc2hvdAorU0VMRUNUIHBnX3N0YXRfZ2V0X2Z1bmN0aW9u X2NhbGxzKDApOworIHBnX3N0YXRfZ2V0X2Z1bmN0aW9uX2NhbGxzIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK1NFVCBMT0NBTCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IG5vbmU7CistLSB2ZXJp ZnkgdGhhdCBzbmFwc2hvdCBpcyBjbGVhcmVkIG9uIGNoYW5naW5nIHN0YXRzX2ZldGNoX2Nv bnNpc3RlbmN5CitTRUxFQ1QgcGdfc3RhdF9nZXRfc25hcHNob3RfdGltZXN0YW1wKCk7Cisg cGdfc3RhdF9nZXRfc25hcHNob3RfdGltZXN0YW1wIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLS0tCiAtLSBwZ19zdGF0 X2hhdmVfc3RhdHMgYmVoYXZpb3IKIC0tLS0KIC0tIGZpeGVkLW51bWJlcmVkIHN0YXRzIGV4 aXN0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwKaW5kZXggOTlhMjhiYjc5Yy4uNTAyZDM1ZTZl YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbApAQCAtNDc2LDYgKzQ3NiwyMSBAQCBTRUxF Q1QgcGdfc3RhdF9jbGVhcl9zbmFwc2hvdCgpOwogU0VMRUNUIHBnX3N0YXRfZ2V0X3NuYXBz aG90X3RpbWVzdGFtcCgpOwogQ09NTUlUOwogCistLS0tCistLSBDaGFuZ2luZyBmZXRjaCBj b25zaXN0ZW5jeSBtb2RlIGluc2lkZSB0cmFuc2FjdGlvbgorLS0tLQorQkVHSU47CitTRVQg TE9DQUwgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBjYWNoZTsKKy0tIGZpbGxpbmcgc3Rh dHMgZm9yIHRoZSBjYWNoZSBtb2RlCitTRUxFQ1QgcGdfc3RhdF9nZXRfZnVuY3Rpb25fY2Fs bHMoMCk7CitTRVQgTE9DQUwgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hvdDsK Ky0tIHZlcmlmeSB0aGF0IHRoZXJlIGlzIG5vIGZhaWx1cmUgb24gYWNjZXNzaW5nIHByZS1l eGlzdGluZyBzbmFwc2hvdAorU0VMRUNUIHBnX3N0YXRfZ2V0X2Z1bmN0aW9uX2NhbGxzKDAp OworU0VUIExPQ0FMIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gbm9uZTsKKy0tIHZlcmlm eSB0aGF0IHNuYXBzaG90IGlzIGNsZWFyZWQgb24gY2hhbmdpbmcgc3RhdHNfZmV0Y2hfY29u c2lzdGVuY3kKK1NFTEVDVCBwZ19zdGF0X2dldF9zbmFwc2hvdF90aW1lc3RhbXAoKTsKK1JP TExCQUNLOworCiAtLS0tCiAtLSBwZ19zdGF0X2hhdmVfc3RhdHMgYmVoYXZpb3IKIC0tLS0K --------------cUnHBTIt6ggUhlEoegp3Mt0N--