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 1mU08V-00048o-Sx for pgsql-hackers@arkaria.postgresql.org; Sat, 25 Sep 2021 05:22:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mU08T-0003Oj-IV for pgsql-hackers@arkaria.postgresql.org; Sat, 25 Sep 2021 05:22:05 +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 1mU08T-0003OV-2X for pgsql-hackers@lists.postgresql.org; Sat, 25 Sep 2021 05:22:05 +0000 Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mU08L-0000f2-CS for pgsql-hackers@postgresql.org; Sat, 25 Sep 2021 05:22:03 +0000 Received: by mail-qk1-x72c.google.com with SMTP id m7so13827357qke.8 for ; Fri, 24 Sep 2021 22:21:56 -0700 (PDT) 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=aaAFSHqWebo7wwKhjlA8G6jfafOgyPLfl1ePK1wmxLA=; b=Dvu85O3RBKHM9vzOvmkLtqgRCYboYifvyJu9jOT5ZzTmtAqyaPNmFiiO4RVwGdk7ic G4zfKjDIiqFQfab/B9uCDhS4sqTgRbfmkdTRzV8+h/6S5QG40jXWdOFzx8dRfkCD89Zf FEgsb3TPsCaJxYO9WnrR54/Xe/7MViy6mxve8= 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=aaAFSHqWebo7wwKhjlA8G6jfafOgyPLfl1ePK1wmxLA=; b=FyPxSJHiMjIZV22pVlwoCe1ZAt95fEOy+zzLVtKY1m8MIOmh3tjCKoez3uab+S9CjM DJCVpUs6eKJXlGfEF/8hdkcQyuutelGbNP8kbvR4apFSQXD0HLo26itO9EMlvbcad/C3 yUAZu2cw8+dXJAxxaTqXymLQ0BqW6SfFQiWwICNhcGB7g48+mpEn76tl4p1FJKjNa3xr kFMoRbQpiIXyp74fcHgXv9lnsQrEnR+4THksq++HdvhdEqLUoaqmmr0NB0o+dsT+/1Nx hC2kqXniqDZglee+eGO68RCC0eGATPFzcW66djIaptGSQVe8GQSOf4uAGJLzvi5lNylu CMAA== X-Gm-Message-State: AOAM5322gouQtXo/BzXpp3gr++E8M2b/K9OIQ99N0nvnsUzxJm9+mGkf j4KYT1iHfqGf+su8SLMetKveVCTDGZPNEFMu X-Google-Smtp-Source: ABdhPJxsI+HaZe/A9Fx0Qp3y1Qwjf2hCH1GBXF1dsbhBvZeqhUdFBHBa8Nv+SOxE8wjxKocXL+Lo/g== X-Received: by 2002:a37:b88:: with SMTP id 130mr14311667qkl.501.1632547315277; Fri, 24 Sep 2021 22:21:55 -0700 (PDT) Received: from rfd.leadboat.com ([2600:1702:a20:5750::46]) by smtp.gmail.com with ESMTPSA id p9sm7676707qkm.23.2021.09.24.22.21.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Sep 2021 22:21:54 -0700 (PDT) Date: Fri, 24 Sep 2021 22:21:51 -0700 From: Noah Misch To: Mark Dilger Cc: PostgreSQL-development Subject: Re: Fixing WAL instability in various TAP tests Message-ID: <20210925052151.GA4082552@rfd.leadboat.com> References: <32A1FDD1-9C7B-43B1-B3EE-49198DD3F887@enterprisedb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <32A1FDD1-9C7B-43B1-B3EE-49198DD3F887@enterprisedb.com> 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 Fri, Sep 24, 2021 at 05:33:13PM -0700, Mark Dilger wrote: > A few TAP tests in the project appear to be sensitive to reductions of the > PostgresNode's max_wal_size setting, resulting in tests failing due to wal > files having been removed too soon. The failures in the logs typically are > of the "requested WAL segment %s has already been removed" variety. I would > expect tests which fail under legal alternate GUC settings to be hardened to > explicitly set the GUCs as they need, rather than implicitly relying on the > defaults. That is not the general practice in PostgreSQL tests today. The buildfarm exercises some settings, so we keep the tests clean for those. Coping with max_wal_size=2 that way sounds reasonable. I'm undecided about the value of hardening tests against all possible settings. On the plus side, it would let us run one buildfarm member that sets every setting to its min_val or enumvals[1] and another member that elects enumvals[cardinality(enumvals)] or max_val. We'd catch some real bugs that way. On the minus side, every nontrivial test suite addition would need to try those two cases before commit or risk buildfarm wrath. I don't know whether the bugs found would pay for that trouble. (There's also a less-important loss around the ability to exercise a setting and manually inspect the results. For example, I sometimes test parallel_tuple_cost=0 parallel_setup_cost=0 and confirm a lack of crashes. After hardening, that would require temporary source code edits to remove the hardening. That's fine, though.)