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 1u3zKj-006371-GZ for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Apr 2025 15:33:21 +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 1u3zKh-007sWC-7c for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Apr 2025 15:33:20 +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 1u3zKg-007sVw-IC for pgsql-hackers@lists.postgresql.org; Sun, 13 Apr 2025 15:33:19 +0000 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u3zKe-0008LX-1j for pgsql-hackers@postgresql.org; Sun, 13 Apr 2025 15:33:18 +0000 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2279915e06eso35399185ad.1 for ; Sun, 13 Apr 2025 08:33:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; t=1744558395; x=1745163195; darn=postgresql.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=dewM/qcrll41YzpK39PU6dOg30GKNJrljaB8FbWmQpk=; b=PrXvOzJWSjLom8gJtmm5qEH6ODcmUM31o3DHyCiH98NiSzmUkXiheOZ2zTRbz3d4gT 0g+SjCzOjMGlXZ6LT6oL/k8wJ3q6JXv+XzVhFEnPP/uTwZrJNNqIs+oZUggAq1uVrx9J HWO6mcK7liuhtfsm/CpIFOTaSK+3zf3x47rsY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744558395; x=1745163195; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dewM/qcrll41YzpK39PU6dOg30GKNJrljaB8FbWmQpk=; b=m2coLF/KHlgbWUTfEPM0ZfOYwgd4HW7LfkfM0fzq4myflGizyV6uL7c2f+ordXOJ5P XuCf862LCBQoCLyhGNS2M+m5lK41Gh4OqIJ7fGOB9nY4heOhCHPi6zQuT124qpfOk9/D ETBhVC3lBTAk+hu8Q4LxqhnwJSej9YFHyBLJC7K69X/U38AtyN1+qRXMk/VSmUEP5n5r a2U6Qk3TgGRI5Zu/cCklQcEmdsw4NS9XkRoLB2DIvosFW/BVCrO2vL1OdkWb3hISJs03 5BpMVO/Z6++geChScYbw5CnypbN5EcJ8E/1Hb6pyve6+YMNBxWvpWECBwdIZeAZPj73Y rJOg== X-Forwarded-Encrypted: i=1; AJvYcCVDryDX+u55JZNMIoetgcxnrd0UyhCBQadprJ7dOMp87VF/KVvMQCrMJC8jT4tmgyqa94sq+1YRfMv9d/Mo@postgresql.org X-Gm-Message-State: AOJu0YxFjgxyS0C25LoklB0LPvHA3zFmvtGcjnMYmmm9iJzR0pKgsvCK oYE9wUwaYaDKSxHFJcGNuGvR/DpulHf89JNxfCCWMi3BH4r1fROPZIyhaFDMoQ== X-Gm-Gg: ASbGncvianZUKSnjK4YuPYjH4/CJ6tLfeGRuhgGHrqqOTL2zfH7Be0LR6TbmYM+SnLo cTyFlugkL6Yy8u9uI9oH3o8sogDdWRkB6ME/qyrFC86aiz2yFZVJy9tnQGBmtsWUhwRf8nDbLcE p3bg17ChvMxN1XGgm+9TtRDGWrL1b28lmdkQeLrh4lzPXUsRDVYjN3QaBaZlgL3ZABrHwxIai3Z fgatxPosG/X4V1kilEg+rKr61+rLuyNEysvenE0Vv1yf7nrEMcc8gUiSCSDjNkP+B4DpEZLDywJ VAODG7DsXfAmeqEzBps5UOWHCsygl/4gv1wFuw== X-Google-Smtp-Source: AGHT+IERKoxIfUJW36MZ8IKxpDuH3b58ASjZ8LKCRNQ12NpJ6Yl13KM8wMtoZ6R9nbhnQcpu0nxLYQ== X-Received: by 2002:a17:902:f706:b0:221:85:f384 with SMTP id d9443c01a7336-22bea4adfadmr130027235ad.16.1744558395292; Sun, 13 Apr 2025 08:33:15 -0700 (PDT) Received: from google.com ([2601:647:5600:80d0::31cd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22ac7b628cfsm83717485ad.26.2025.04.13.08.33.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 13 Apr 2025 08:33:14 -0700 (PDT) Date: Sun, 13 Apr 2025 08:33:12 -0700 From: Noah Misch To: Tom Lane , Michael Paquier Cc: Nathan Bossart , Andres Freund , Robert Pang , Kyotaro Horiguchi , robertmhaas@gmail.com, pgsql-hackers@postgresql.org Subject: Re: Back-patch of: avoid multiple hard links to same WAL file after a crash Message-ID: <20250413153312.12.nmisch@google.com> References: <20250311205749.a8.nmisch@google.com> <20250312012315.fd.nmisch@google.com> <20250403002900.5d.nmisch@google.com> <2461391.1743865633@sss.pgh.pa.us> <20250405191339.8d.nmisch@google.com> <20250406020958.95.nmisch@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250406020958.95.nmisch@google.com> User-Agent: Mutt/2.2.12 (2023-09-09) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sat, Apr 05, 2025 at 07:09:58PM -0700, Noah Misch wrote: > On Sun, Apr 06, 2025 at 07:42:02AM +0900, Michael Paquier wrote: > > On Sat, Apr 05, 2025 at 12:13:39PM -0700, Noah Misch wrote: > > > Since the 2025-02 releases made non-toy-size archive recoveries fail easily, > > > that's not enough. If the proposed 3-second test is the wrong thing, what > > > instead? > > > > I don't have a good idea about that in ~16, TBH, but I am sure to not > > be a fan of the low reproducibility rate of this test as proposed. > > It's not perfect, but as the design to fix the original race condition > > has been introduced in v15, why not begin with a test in 17~ using > > some injection points? > > Two reasons: > > a) The fix ended calls to the whole range of relevant code. Hence, the > injection point placement that would have been relevant before the fix > isn't reached. In other words, there's no right place for the injection > point. (The place for the injection point would be in durable_rename(), in > the checkpointer. After the fix, the checkpointer just doesn't call > durable_rename().) > > b) Stochastic tests catch defects beyond the specific one the test author > targeted. An injection point test is less likely to do that. (That said, > with reason (a), there's no known injection point test design to compete > with the stochastic design.) Tom and Michael, do you still object to the test addition, or not? If there are no new or renewed objections by 2025-04-20, I'll proceed to add the test. As another data point, raising the runtime from 3s to 17s makes it reproduce the problem 25% of the time. You can imagine a plot with axes of runtime and percent detection. One can pick any point on that plot's curve. Given how little wall time it takes for the buildfarm and CI to reach a few hundred runs, I like the trade-off of 3s runtime and 1% detection. In particular, I like it better than 17s runtime for 25% detection. How do you see it?