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 1u8JRk-000nuM-Hk for pgsql-hackers@arkaria.postgresql.org; Fri, 25 Apr 2025 13:50:29 +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 1u8JRh-00BSvT-4w for pgsql-hackers@arkaria.postgresql.org; Fri, 25 Apr 2025 13:50:25 +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 1u8JRg-00BSvL-Lt for pgsql-hackers@lists.postgresql.org; Fri, 25 Apr 2025 13:50:25 +0000 Received: from fennec.ash.relay.mailchannels.net ([23.83.222.58]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u8JRe-001tjm-08 for pgsql-hackers@postgresql.org; Fri, 25 Apr 2025 13:50:24 +0000 X-Sender-Id: hostingeremail|x-authuser|david@pgbackrest.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 75879162666; Fri, 25 Apr 2025 13:50:20 +0000 (UTC) Received: from uk-fast-smtpout2.hostinger.io (trex-2.trex.outbound.svc.cluster.local [100.109.34.203]) (Authenticated sender: hostingeremail) by relay.mailchannels.net (Postfix) with ESMTPA id ADDFD161874; Fri, 25 Apr 2025 13:50:19 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1745589020; a=rsa-sha256; cv=none; b=3ieRyGkD+RoGrEl0NROV6h3EtTvAKx0ITlxWP5qFF2FBALn2Pt+zs5nur3Oxgoz9YNPRVI aEX1VIt0O9pauZ6zdqhSDwP4035l1TFYCVoorMChF/1tD4Q6ptk/n/1VFLB9920ymrWbIw 7bsQ80JYAWws01m0NWR+LBTJeV1kgnsfXYFylb45vJmg8RCOHBEYRb9kcX9jc98EVdlCmd bDnuRxKyAqdwHY9ROJ/O/l/jwFATHr96pXzxG4FiJmhBeOy6PqVr2WlNuIWksbrt3iL3m/ WCFSlUtLGHoG0h2OrhWvUwbGRsgN3KsvJNTeLa/+AAjSMY7U4srnnz5cun7gFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1745589020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dYlBzF0JqrPhNJM8ab5OY8TpO9uBtAYxXf5XYJzweOU=; b=PiS328QKniZv+xOawziCz11vpDjnIiNakoiAkMTQDukzw6c96YUcWM5AYBotl+qm4nDAAd 8BlM119kT+KzNO6gUbLmBWv1Xdvt0wmXtCgGfD5UBQhv1am5oKVw/ySeoLKqhgIaWs1VZu CVPV3ghzuvx07s3gh3K3iBoxdtQDp6ybQ953GS/5UGe0JgnJKMBC8jQG9tMMsCVevcMqjV Hf6yhlTJlK85d/SgC8wW35QU1yGJ9Ub7/2RyHW8F2UV0UwxGfPF5dvJXXEx9t3w3H/xsss IAEm8ecVEkNGil6MmH+gATYI2u+cpEx73ptK/EIBipWp/norI+KfYQ0HMqdZJQ== ARC-Authentication-Results: i=1; rspamd-df67f78bd-2dwlg; auth=pass smtp.auth=hostingeremail smtp.mailfrom=david@pgbackrest.org X-Sender-Id: hostingeremail|x-authuser|david@pgbackrest.org X-MC-Relay: Neutral X-MailChannels-SenderId: hostingeremail|x-authuser|david@pgbackrest.org X-MailChannels-Auth-Id: hostingeremail X-Skirt-Zesty: 4f78b95e32244364_1745589020344_713166791 X-MC-Loop-Signature: 1745589020344:3344707094 X-MC-Ingress-Time: 1745589020344 Received: from uk-fast-smtpout2.hostinger.io (uk-fast-smtpout2.hostinger.io [31.220.23.36]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.109.34.203 (trex/7.0.3); Fri, 25 Apr 2025 13:50:20 +0000 Received: from [10.5.0.2] (unknown [103.44.215.1]) (Authenticated sender: david@pgbackrest.org) by smtp.hostinger.com (smtp.hostinger.com) with ESMTPSA id 4ZkZ3X5y8ZzBqcY2; Fri, 25 Apr 2025 13:50:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgbackrest.org; s=hostingermail1; t=1745589017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dYlBzF0JqrPhNJM8ab5OY8TpO9uBtAYxXf5XYJzweOU=; b=KvobwQJMndsWD2FSm4cbpD6XI+w7s04tary9XYHT8ckjbmJyNRmJqvX3w7byXCGLg0HGJX Cx6V6yxNyhC4ywaZ+3wXJzjxSq846HB4FygXtbH68BfSr2YzegaafUzl756xSMfEqZwduS 24rZtxxPOP7R6zh/Z6jJtS0XY5NfbLy/pi5c0rU+ueE4Rek5DVSTFpBur8vkqNGuvgN1gR K7P85yBvHpzekLyNqCjRsxksN2ZQ8z/37FbBPh9LeLtrGl5KShprHUv3XsECz0SmrK7QyG qJil8Szku2GxY/3+tLdVdRXQgnmAWx50ikv7oJNNex6W08pMQYhrHIUmJlV8TA== Content-Type: multipart/mixed; boundary="------------S95Ugjzy7t00UJmeRSDX4h4b" Message-ID: <08cf439a-4566-4698-b60f-d8e9ed348456@pgbackrest.org> MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Improve verification of recovery_target_timeline GUC. To: Michael Paquier Cc: Pg Hackers References: Content-Language: en-US From: David Steele In-Reply-To: Date: Fri, 25 Apr 2025 13:50:16 +0000 (UTC) X-CM-Envelope: MS4xfJDUgGsoagOSwquZJBFyzOBUTcGB7RGi1v09Bfbgdxqy8jiA/cJRfGx8Zzfj40gKJlnJNHzfuhiIujgMdYXOAOM8IZ51otVjzoxL+QXR6Dy5NgNs6uzB fMUVDVkwVoEk+uecH3IVvibGWa38rGtiNUqaJVi/e8rQB2QCjTVaoXCP3j7Pxtz5B+Y55u8eDFY+klUVLA6HvtjyODBZV1KhpRfO2gGuvS/HJqR5B4PloQPT X-CM-Analysis: v=2.4 cv=IrhMc6/g c=1 sm=1 tr=0 ts=680b9319 a=rNVHGAFy7pd4+xU3qQLi/w==:117 a=rNVHGAFy7pd4+xU3qQLi/w==:17 a=sWKEhP36mHoA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=A_ag5wtQwi9yblgumakA:9 a=QEXdDO2ut3YA:10 a=1wDIiH70AAAA:8 a=--by3nLceVqmeXIOxE4A:9 a=B2y7HmGcmWMA:10 a=uCsh6WI2SJRHIg0NT2Eg:22 X-AuthUser: david@pgbackrest.org 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. --------------S95Ugjzy7t00UJmeRSDX4h4b Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/24/25 20:12, Michael Paquier wrote: > On Thu, Apr 24, 2025 at 03:34:29PM +0000, David Steele wrote: >> >> Having said that, I think these tests are awfully expensive for a single >> GUC. Unit tests would definitely be preferable but that's not an option for >> GUCs, so far as I know. > > On my laptop, 003_recovery_targets.pl increases from 8.2s to 8.7s, > which seems OK here for the coverage we have. Multiply half a second by similar tests on all the GUCs and it would add up to a lot. But no argument here on keeping the tests. > "invalid recovery startup fails" is used three times repeatedly for > the tests with bogus and out-of-bound values. I'd suggest to make > these more verbose, with three extras "bogus value", "lower bound > check" and "upper bound check" added. I have updated the labels to be more descriptive. > Side thing noted while reading the area: check_recovery_target_xid() > does not have any GUC_check_errdetail() giving details for the EINVAL > and ERANGE cases. Your addition for recovery_target_timeline is a > good idea, so perhaps we could do the same there? No need to do that, > that's just something I've noticed in passing.. I don't want to add that to this commit but I have added a note to my list of PG improvements to make when I have time. > And you are following the fat-comma convention for the command lines, > thanks for doing that. Just trying to follow the convention from existing tests, but you are welcome! > Note that I'm not planning to do anything here > for v18 now that we are in feature freeze, these would be for v19 once > the branch opens. That was my expectation. I just had some time to get this patch updated so took the opportunity. Regards, -David --------------S95Ugjzy7t00UJmeRSDX4h4b Content-Type: text/plain; charset=UTF-8; name="timeline-check-v3.patch" Content-Disposition: attachment; filename="timeline-check-v3.patch" Content-Transfer-Encoding: base64 RnJvbSA1ZThmYTM5MWU3ZDIxNzE0NzVkYzhjODZlZjI5ZmUzYzkzMDVkMmUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBTdGVlbGUgPGRhdmlkQHBnbWFzdGVycy5u ZXQ+CkRhdGU6IEZyaSwgMjUgQXByIDIwMjUgMTM6Mzc6NDEgKzAwMDAKU3ViamVjdDogSW1w cm92ZSB2ZXJpZmljYXRpb24gb2YgcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIEdVQy4KCkN1 cnJlbnRseSBjaGVja19yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoKSBjb252ZXJ0cyBhbnkg dmFsdWUgdGhhdCBpcyBub3QKY3VycmVudCwgbGF0ZXN0LCBvciBhIHZhbGlkIGludGVnZXIg dG8gMC4gU28gZm9yIGV4YW1wbGU6CgpyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUgPSAnY3Vy cnJlbnQnCgpyZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgZXJyb3I6CgpGQVRBTDogIDIyMDIz OiByZWNvdmVyeSB0YXJnZXQgdGltZWxpbmUgMCBkb2VzIG5vdCBleGlzdAoKU2luY2UgdGhl cmUgaXMgbm8gcmFuZ2UgY2hlY2tpbmcgZm9yIHVpbnQzMiAoYnV0IHRoZXJlIGlzIGEgY2Fz dCBmcm9tIHVuc2lnbmVkIGxvbmcpIHRoaXMgc2V0dGluZzoKCnJlY292ZXJ5X3RhcmdldF90 aW1lbGluZSA9ICc5OTk5OTk5OTk5JwoKcmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIGVycm9y OgoKRkFUQUw6ICAyMjAyMzogcmVjb3ZlcnkgdGFyZ2V0IHRpbWVsaW5lIDE0MTAwNjU0MDcg ZG9lcyBub3QgZXhpc3QKCkltcHJvdmUgYnkgYWRkaW5nIGVuZHB0ciBjaGVja2luZyB0byBj YXRjaCBjb252ZXJzaW9uIGVycm9ycyBhbmQgYWRkIHJhbmdlIGNoZWNraW5nIHRvCmV4Y2x1 ZGUgdmFsdWVzIDwgMiBhbmQgZ3JlYXRlciB0aGFuIFVJTlRfTUFYLgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jICAgfCAxNyArKysrKy0tCiBzcmMv dGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJnZXRzLnBsIHwgNTAgKysrKysrKysr KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3Zlcnku YwppbmRleCA2Y2U5NzlmMmQ4Yi4uZTgyYWE3MzlkNzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC00OTk0LDEzICs0OTk0LDI0IEBAIGNo ZWNrX3JlY292ZXJ5X3RhcmdldF90aW1lbGluZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0 cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJCXJ0dGcgPSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJ TkVfTEFURVNUOwogCWVsc2UKIAl7CisJCWNoYXIJCSAqZW5kcDsKKwkJdWludDY0CQl0aW1l bGluZTsKIAkJcnR0ZyA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDOwogCiAJ CWVycm5vID0gMDsKLQkJc3RydG91bCgqbmV3dmFsLCBOVUxMLCAwKTsKLQkJaWYgKGVycm5v ID09IEVJTlZBTCB8fCBlcnJubyA9PSBFUkFOR0UpCisJCXRpbWVsaW5lID0gc3RydG91NjQo Km5ld3ZhbCwgJmVuZHAsIDApOworCisJCWlmICgqZW5kcCAhPSAnXDAnIHx8IGVycm5vID09 IEVJTlZBTCB8fCBlcnJubyA9PSBFUkFOR0UpCisJCXsKKwkJCUdVQ19jaGVja19lcnJkZXRh aWwoIlwiJXNcIiBpcyBub3QgYSB2YWxpZCBudW1iZXIuIiwKKwkJCQkJCQkJInJlY292ZXJ5 X3RhcmdldF90aW1lbGluZSIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJaWYgKHRp bWVsaW5lIDwgMSB8fCB0aW1lbGluZSA+IFVJTlRfTUFYKQogCQl7Ci0JCQlHVUNfY2hlY2tf ZXJyZGV0YWlsKCJcInJlY292ZXJ5X3RhcmdldF90aW1lbGluZVwiIGlzIG5vdCBhIHZhbGlk IG51bWJlci4iKTsKKwkJCUdVQ19jaGVja19lcnJkZXRhaWwoIlwiJXNcIiBtdXN0IGJlIGJl dHdlZW4gJXUgYW5kICV1LiIsCisJCQkJCQkJCSJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUi LCAxLCBVSU5UX01BWCk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJnZXRzLnBsIGIvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3ZlcnlfdGFyZ2V0cy5wbAppbmRleCAwYWUyZTk4Mjcy Ny4uYTk2M2Y0NmI3YmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAzX3Jl Y292ZXJ5X3RhcmdldHMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3Zl cnlfdGFyZ2V0cy5wbApAQCAtMTg3LDQgKzE4Nyw1NCBAQCBvayggJGxvZ2ZpbGUgPX4KIAkg IHFyL0ZBVEFMOiAuKiByZWNvdmVyeSBlbmRlZCBiZWZvcmUgY29uZmlndXJlZCByZWNvdmVy eSB0YXJnZXQgd2FzIHJlYWNoZWQvLAogCSdyZWNvdmVyeSBlbmQgYmVmb3JlIHRhcmdldCBy ZWFjaGVkIGlzIGEgZmF0YWwgZXJyb3InKTsKIAorIyBJbnZhbGlkIHRpbWVsaW5lIHRhcmdl dAorJG5vZGVfc3RhbmRieSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Rh bmRieV85Jyk7Ciskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKCRub2RlX3ByaW1h cnksICdteV9iYWNrdXAnLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Ciskbm9kZV9zdGFuZGJ5 LT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgInJlY292ZXJ5X3RhcmdldF90 aW1lbGluZSA9ICdib2d1cyciKTsKKworJHJlcyA9IHJ1bl9sb2coCisJWworCQkncGdfY3Rs JywKKwkJJy0tcGdkYXRhJyA9PiAkbm9kZV9zdGFuZGJ5LT5kYXRhX2RpciwKKwkJJy0tbG9n JyA9PiAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlLAorCQknc3RhcnQnLAorCV0pOworb2soISRy ZXMsICdpbnZhbGlkIHRpbWVsaW5lIHRhcmdldCAoYm9ndXMgdmFsdWUpJyk7CisKK215ICRs b2dfc3RhcnQgPSAkbm9kZV9zdGFuZGJ5LT53YWl0X2Zvcl9sb2coImlzIG5vdCBhIHZhbGlk IG51bWJlciIpOworCisjIFRpbWVsaW5lIHRhcmdldCBvdXQgb2YgbWluIHJhbmdlCiskbm9k ZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgInJlY292ZXJ5 X3RhcmdldF90aW1lbGluZSA9ICcwJyIpOworCiskcmVzID0gcnVuX2xvZygKKwlbCisJCSdw Z19jdGwnLAorCQknLS1wZ2RhdGEnID0+ICRub2RlX3N0YW5kYnktPmRhdGFfZGlyLAorCQkn LS1sb2cnID0+ICRub2RlX3N0YW5kYnktPmxvZ2ZpbGUsCisJCSdzdGFydCcsCisJXSk7Citv ayghJHJlcywgJ2ludmFsaWQgdGltZWxpbmUgdGFyZ2V0IChsb3dlciBib3VuZCBjaGVjaykn KTsKKworJGxvZ19zdGFydCA9ICRub2RlX3N0YW5kYnktPndhaXRfZm9yX2xvZygibXVzdCBi ZSBiZXR3ZWVuIDEgYW5kIDQyOTQ5NjcyOTUiLAorCQkJCQkJCQkJCSAkbG9nX3N0YXJ0KTsK KworIyBUaW1lbGluZSB0YXJnZXQgb3V0IG9mIG1heCByYW5nZQorJG5vZGVfc3RhbmRieS0+ YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29uZicsICJyZWNvdmVyeV90YXJnZXRfdGlt ZWxpbmUgPSAnNDI5NDk2NzI5NiciKTsKKworJHJlcyA9IHJ1bl9sb2coCisJWworCQkncGdf Y3RsJywKKwkJJy0tcGdkYXRhJyA9PiAkbm9kZV9zdGFuZGJ5LT5kYXRhX2RpciwKKwkJJy0t bG9nJyA9PiAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlLAorCQknc3RhcnQnLAorCV0pOworb2so ISRyZXMsICdpbnZhbGlkIHRpbWVsaW5lIHRhcmdldCAodXBwZXIgYm91bmQgY2hlY2spJyk7 CisKKyRsb2dfc3RhcnQgPSAkbm9kZV9zdGFuZGJ5LT53YWl0X2Zvcl9sb2coIm11c3QgYmUg YmV0d2VlbiAxIGFuZCA0Mjk0OTY3Mjk1IiwKKwkJCQkJCQkJCQkgJGxvZ19zdGFydCk7CisK IGRvbmVfdGVzdGluZygpOwotLSAKMi4zNC4xCgo= --------------S95Ugjzy7t00UJmeRSDX4h4b--