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.96) (envelope-from ) id 1vy0DI-00HKyS-1c for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Mar 2026 04:21:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vy0DG-00FrqS-2d for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Mar 2026 04:21:27 +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.96) (envelope-from ) id 1vy0DG-00FrqK-1m for pgsql-hackers@lists.postgresql.org; Thu, 05 Mar 2026 04:21:27 +0000 Received: from gecko.ash.relay.mailchannels.net ([23.83.222.66]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vy0DE-00000000k7A-1gt0 for pgsql-hackers@postgresql.org; Thu, 05 Mar 2026 04:21:26 +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 99A747E1B05; Thu, 05 Mar 2026 04:21:21 +0000 (UTC) Received: from fr-int-smtpout17.hostinger.io (100-105-173-198.trex-nlb.outbound.svc.cluster.local [100.105.173.198]) (Authenticated sender: hostingeremail) by relay.mailchannels.net (Postfix) with ESMTPA id 7F4757E19C7; Thu, 05 Mar 2026 04:21:20 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; d=mailchannels.net; s=arc-2022; cv=none; t=1772684481; b=MU2C5XHfwe5jO1Tj8uhdKYYOTiGrp2InnY+ZW2xtSAd3dliVgJ6KWUIX1zqNVIuZ8vz/CA Uhp7drfmmN4JvTB2hZwNVQA+ZevokBYOVIywsY7M9sBG+MuIxzCA9FV05VR0yJuF7Gih63 3PT9yGfWo/ckYISQZvzUP0SJAdDKHP7JAfbzM+e7/LtHTsHnQQ/cDOGtiAh23/Y/sKZki+ vH2zpr5kw0FKmjY4QHW7Yx7P1BFi8Qbwdag83D/+Oyu71AZcC41uGjpHcREhABFaonIlEf 6SeICzvS6ZJz3fiGIH8oguo6uyvejVYkGOCV14DlzppX6WPBm3sqFYvQPurIgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1772684481; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=XqJBCNa3/niZsFXwq+dZhvhdua2nEmZ/poDa4qKBe9Q=; b=CFi88i7WFg1Wn4Clr5Iy1jwIoC/0eDqL7rDAfXJGjzGIVG6+LiWkTecGbQwNaamEj8SasK b3snSr+4p4x7pYMwrPGyjtmmxW5+msiqXmzg0LD8enAPDb3ESr+uaTQczI1+FKR7LeZqcH ZSXYHKAZT7EjcAu4IeLSvwMYsT4bT7GAsN77XjPWV6iOhVna/GjP39L6NhxAIP+NJpiEdf QkJhztIu78VOfM1HNoJ7h5rdOwC3QbX5Hy8j33tNUR1XaTWN01qxPmJMi00/NopAE3m+vW OlnLupXZ4LdU841V87QmurjURcowbKWN7BpumY3890M63SfhQPpQe74YKbPebw== ARC-Authentication-Results: i=1; rspamd-7f65b64645-sdqg6; 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-Zesty-Thoughtful: 3cd9c93a4ae2adf3_1772684481529_1360130459 X-MC-Loop-Signature: 1772684481529:1605511919 X-MC-Ingress-Time: 1772684481528 Received: from fr-int-smtpout17.hostinger.io (fr-int-smtpout17.hostinger.io [148.222.54.37]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.105.173.198 (trex/7.1.3); Thu, 05 Mar 2026 04:21:21 +0000 Received: from [10.5.0.2] (unknown [185.228.19.238]) (Authenticated sender: david@pgbackrest.org) by smtp.hostinger.com (smtp.hostinger.com) with ESMTPSA id 4fRGZ45Sdhz1yGG; Thu, 5 Mar 2026 04:21:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgbackrest.org; s=hostingermail1; t=1772684478; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XqJBCNa3/niZsFXwq+dZhvhdua2nEmZ/poDa4qKBe9Q=; b=uIw/D0mi0gKCabG1pue/YLMf5SepvuU4l5AGDffaLdVghYAVXnjZ48odDtVIxAbSelpHsr E3bneiDuxBB/MOG/gLKxVeBgW+YqDqAsy4HsK37cVs8K81SuNiJLbhcSbib6Cno8FeVycU eUdVnRakZvm/2PfknDonY8XZj6R2edHYuGqigkXa8DA4OIJ42+G6H6FP+C8hS9R4peQId3 5VWMuf1KcoQ7jTUDtzR5LHzLFNXdw6ocUipyNrANdCe1Sc2gZcXny2FKSOooFw7wnQYGG8 wMDK0zd7F/GOwPNO3BJTwNsOLoSQkwq43B3R6OoJHM4NJ8LBJ8oXJC21erszGw== Message-ID: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Improve checks for GUC recovery_target_xid To: Michael Paquier Cc: Fujii Masao , =?UTF-8?Q?H=C3=BCseyin_Demir?= , Pg Hackers References: <9e8b7ee9-4a16-477a-baa5-0cdf37a04798@pgbackrest.org> Content-Language: en-US From: David Steele In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 5 Mar 2026 04:21:16 +0000 (UTC) X-CM-Analysis: v=2.4 cv=ZbRPNdVA c=1 sm=1 tr=0 ts=69a904be a=71UpzWZYpKkjjgLxtTWI5A==:117 a=71UpzWZYpKkjjgLxtTWI5A==:17 a=IkcTkHD0fZMA:10 a=SqH4upRFW1oP1XTPX74A:9 a=QEXdDO2ut3YA:10 X-CM-Envelope: MS4xfG3YF4twyWRXeg5gZHh4WkFb3tqyiR5Cx8aSFUU7S1wfGQIAM+ObSCpCHz2u4gJheK/2cMmatzHnUvDJAAQlXXTrSRc0zIxyBWUf6HtX1vTfFG2wcCXY oNUmHfPL4oYTbWj55l2PxCWuZGajb0hBgQ0qmeOqHhCXRMZ2WF1YAryjB2om7uD6fp8MTmauq/6mlIxiPjAf5svdMbN9dsv6XnR4D3edUZ1IwIUE6T12jPv5 79a+OJSDz6HJa9PLE8cfaMgkf/5M8JFM4Qz4dIbitPd4INe0pZ3B3Cg/7efxrYqw X-AuthUser: david@pgbackrest.org List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 3/5/26 11:03, Michael Paquier wrote: > On Thu, Mar 05, 2026 at 03:40:44AM +0000, David Steele wrote: >> I wrote the tests for recovery_target_timeline but I was not too satisfied >> with them because starting Postgres is fairly expensive. > > +# Invalid recovery_target_xid tests > +$node_standby = PostgreSQL::Test::Cluster->new('standby_10'); > +$node_standby->init_from_backup($node_primary, 'my_backup', > + has_restoring => 1); > +$node_standby->start; > + > +my ($result, $stdout, $stderr) = $node_primary->psql('postgres', > + "ALTER SYSTEM SET recovery_target_xid TO 'bogus'"); > +like( > + $stderr, > + qr/is not a valid number/, > + "invalid recovery_target_xid (bogus value)"); > > Smart move to rely on ALTER SYSTEM to check how the GUC callback is > reacting on incorrect input values. Why do you need to create and > start a new standby if it is not used, then? The prior standby is not running because of the invalid config. I figured it was better to start clean but when I update the recovery_target_timeline tests I was planning to use the same standby for all the new tests. Regards, -David