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 1nBuJR-000544-0t for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jan 2022 08:02:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nBuJP-0002og-Ss for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jan 2022 08:02:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nBuJP-0002oO-Bz for pgsql-hackers@lists.postgresql.org; Mon, 24 Jan 2022 08:02:51 +0000 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nBuJM-0005j3-1D for pgsql-hackers@lists.postgresql.org; Mon, 24 Jan 2022 08:02:49 +0000 Received: by mail-ot1-x32b.google.com with SMTP id m8-20020a9d4c88000000b00592bae7944bso21203348otf.1 for ; Mon, 24 Jan 2022 00:02:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=ARcHYbd3saGWzDH+IWQ1jhhBcBSAp/jCmYvRED/muds=; b=ZdYtGq1SgUfs08J/0pIa5P0oHD8AjRqXJufOGn92AzosrSKbFi7Bxe0v5HnrG4GY/s eo4mswpxJqd5WyHIfOJep8qRmP2xBrx06MPiksu6gTf6JH3b/QoCdTkBYXRDeocTxnwj bWlaDrtGjHKad64dwyv98a9OzYxy/Xzdt0CLg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=ARcHYbd3saGWzDH+IWQ1jhhBcBSAp/jCmYvRED/muds=; b=FQmC/0l/9aQfv8SdPpyJQnrKJbp45YNFuBcI3f7ysS3nqTaYxeDThz0gUJDcxFipE0 Ne0VvVvZ5gxKtVAwQFZDAwUoh5Ygf1pn0JPTnwvCKEwpkc4XswO+UwSztH/CckGEdUlA cSIaX+rcrhwJiQqj2D/YtDKZvOnjhV465ocOGZo1vi0usZAtqOOtSBitj0YLpLhbbRb9 kABBRdGFZruIGlotf9p4ZskXKmj1/XT3EbmV9QTCRcK36TEUJWykhmchW2MoReC75gVy m9R1SlfZ1In8vqAWxb8IgPTJAC+8J/IcBhskzcow6mOKLnIhZGcHtzyOQrJgkqrlUYxS EXrQ== X-Gm-Message-State: AOAM532TLDOdRLIsPOVTdWQJZJx8yik01AAYVvONFaKaDBa70Wz/AjwJ 6zCKZBENbCGT03R4BQ9k0+cnIA== X-Google-Smtp-Source: ABdhPJycZnfyvkqblXkEHsapGWegETuFpPT7mJ4ftpgSEyGjh2X/Tpz8ph/f8Y1tpH5z/EfSXRi7BQ== X-Received: by 2002:a05:6830:314e:: with SMTP id c14mr11162425ots.338.1643011367296; Mon, 24 Jan 2022 00:02:47 -0800 (PST) Received: from rfd.leadboat.com ([2600:1702:a20:5750::2e]) by smtp.gmail.com with ESMTPSA id o144sm1687835ooo.25.2022.01.24.00.02.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jan 2022 00:02:46 -0800 (PST) Date: Mon, 24 Jan 2022 00:02:43 -0800 From: Noah Misch To: Andres Freund Cc: pgsql-hackers@lists.postgresql.org, Thomas Munro , pgbf@twiska.com, Tom Lane , Michael Paquier , pgsql-hackers Subject: Re: XLogReadRecord() error in XlogReadTwoPhaseData() Message-ID: <20220124080243.GA1187287@rfd.leadboat.com> References: <20220116210241.GC756210@rfd.leadboat.com> <20220122185241.GA1095169@rfd.leadboat.com> <20220123232927.GA1131882@rfd.leadboat.com> <78685FA0-EEC6-4AFB-B323-C37A99C82563@anarazel.de> <20220124011759.GC1131882@rfd.leadboat.com> <20220124014054.cd4yranmj5wyf7g7@alap3.anarazel.de> <20220124021007.GA1170596@rfd.leadboat.com> <20220124023432.mol34o34kmjrbcvo@alap3.anarazel.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220124023432.mol34o34kmjrbcvo@alap3.anarazel.de> User-Agent: Mutt/1.5.24 (2015-08-30) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, Jan 23, 2022 at 06:34:32PM -0800, Andres Freund wrote: > On 2022-01-23 18:10:07 -0800, Noah Misch wrote: > > On Sun, Jan 23, 2022 at 05:40:54PM -0800, Andres Freund wrote: > > > Test::more's description: "If it's something the programmer hasn't done yet, > > > use TODO. This is for any code you haven't written yet, or bugs you have yet > > > to fix, but want to put tests in your testing script (always a good idea)." > > > > Could do that. Every run that doesn't get the flaky failure will print a > > message like "TODO passed: 3-5", though the test file could mitigate that by > > declaring the TODO only on configurations where we expect a failure. > > Yea, that's what I was thinking we'd do. > > > The > > 027_stream_regress.pl trouble involves reaching a die(), not failing a test in > > this sense, so that one would take more work. > > I'm really not a perl person... But my understanding is that todo_skip() would > address this? I.e. something like > > TODO: > { > $todo_skip "linux/sparc has unaddressed problems with partial page overwrites" > if ($^O eq 'linux' and $Config{archname'} ~= 'sparc'); > > ok(whatever is broken); > } Yes. todo_skip() behaves much like regular skip(). The enclosed tests don't run. Hence, it prevents die() and BAIL_OUT() failures. $TODO is a different beast; tests still run, and it changes the reporting. For 003_cic_2pc.pl, I'm fine using $TODO so we continue to run all test commands and quietly log their results. For 027_stream_regress.pl, which would need deep changes to use $TODO, it works to use any of todo_skip, skip, or skip_all. I prefer skip_all, because it prints the skip reason to gmake's stdout. (If the number of affected users is zero as theorized, the choice doesn't matter.) Any objections? Here's the appearance of each strategy on gmake's stdout: === todo_skip [23:56:45] t/003_cic_2pc.pl .. ok 60 ms ( 0.00 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.05 CPU) [23:56:45] All tests successful. Files=1, Tests=5, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.06 CPU) Result: PASS === skip [23:55:47] t/003_cic_2pc.pl .. ok 59 ms ( 0.00 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.05 CPU) [23:55:48] All tests successful. Files=1, Tests=5, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.06 CPU) Result: PASS === skip_all [23:31:04] t/003_cic_2pc.pl .. skipped: filesystem bug [23:31:04] Files=1, Tests=0, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.07 CPU) Result: NOTESTS === $TODO, test 1 is expected fail, tests 2-5 are unexpected pass [23:32:32] t/003_cic_2pc.pl .. ok 1371 ms ( 0.01 usr 0.00 sys + 0.51 cusr 0.24 csys = 0.76 CPU) [23:32:33] All tests successful. Test Summary Report ------------------- t/003_cic_2pc.pl (Wstat: 0 Tests: 5 Failed: 0) TODO passed: 2-5 Files=1, Tests=5, 1 wallclock secs ( 0.02 usr 0.00 sys + 0.51 cusr 0.24 csys = 0.77 CPU) Result: PASS