From patchwork Tue Jan 30 05:22:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13536893 Received: from fout8-smtp.messagingengine.com (fout8-smtp.messagingengine.com [103.168.172.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1704433CC4 for ; Tue, 30 Jan 2024 05:22:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706592178; cv=none; b=AHdhFmcEqB0zxk4g5JA1skFjIkYLCTvYqDGGb8cg5apH3fH9iGLtOLHCb2j09UHw189GsF/WRhTGbR2R1qsoPJ1Y2W4e2dtX/25LaCXR0KGJcmBP2O/mlrJFaWG5/s5e2gD/9ydFD4/IN4K7a6yhU+iOrrL0xGuyzaouMXfEPS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706592178; c=relaxed/simple; bh=yTr8rQrI/3h0Dkp3q7CtCOkv69X6Mik0CQm16NuBvn8=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=ur4YdbsJ8IrnvddriOiH7QQpArJfCHMx1tcvpjy23zAwq4d1rKeTmRal5tqDGldlNB2+b44qkSg/QrLHSX0cVwelXzEfD+cHpXTBYnT9WffefbeSMn9SLuCAhe9zQKkhsUy19aFX9RSbHTCl55aywOhJOJ1RbKpK0retGTHTR6U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=l19lbcfM; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=jdIn+2rL; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="l19lbcfM"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="jdIn+2rL" Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailfout.nyi.internal (Postfix) with ESMTP id CEFB5138006B; Tue, 30 Jan 2024 00:22:53 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Tue, 30 Jan 2024 00:22:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1706592173; x=1706678573; bh=N/Kw/pD12WJL/524H7kz02EQuFy44Vz+ USFZxHMgUJA=; b=l19lbcfM6lurDqmFPXWEnTA00Kk4XEQ8DlPsHLX1KEC+iHXf FU064v3515RE3Y/ZTjuo6dAMt5MKjEoR7T/XMLzgTprwUf48qqNDgl+Xhe5p0icz jfoBKGoOfX2tkAxoDzOH1QvOlPxxePNmbjdAT1JXwFCXf2Mn1Nb7f0JS11/tWj4g 2LrKP71h8GLZzSzeRqMvtG9np9yzycfsLS42ZCYAbRmNLcv+P6TjIJIHqIl4Wh6z ad48U63U3b+BNbXHkWWaoTtVcZPpYg480E8CWuitS8c9M4/hwsOuHbTGkDCaMFqn 0HuIS2jaLSLNWTknnhw3fIwtRX1O7wxwRbxnqA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1706592173; x=1706678573; bh=N/Kw/pD12WJL/524H7kz02EQuFy44Vz+USF ZxHMgUJA=; b=jdIn+2rLeipaFAE8Zam3k3l3QPtpSKlFyUwv34EC2zos/E0tC1N 8PlEbEDj3JDzL3/pIJD9Sn4eKXkTC1LxHx/4btvg+vDDZOfal+IyUggdg0gRPQjh P9YhcGZXUDP9VaMkA7pV91k2x9TxTToNYqCMpfmIbIzUrSDaEegLfI31hXubvSNg 5Sryki+rjCZUhJh4F+bS2R3KxR4P0hEE7yJb1xwIi8iU/gNyXIPV5C7hulCxSL39 AHlDIelAJMWpBtKqtq67vvqqMWod8vYsgnyDLw9Bvf9gjOHvnZSg+XmUKNcpEFA7 7zfJYhfwnuKHbInAk8b56udbOgrs9Z3/WtQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrfedthedgkeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkgggtugesghdtreertddtvdenucfhrhhomheprfgrthhrihgt khcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimheqnecuggftrfgrthhtvghrnh epuefguedtueeiheetleevgedujeekjeehleejjefhhffghfevgfekueekjedtieejnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhssehpkh hsrdhimh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 30 Jan 2024 00:22:52 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 7b96766f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 30 Jan 2024 05:19:32 +0000 (UTC) Date: Tue, 30 Jan 2024 06:22:47 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Cc: John Cai Subject: [PATCH] reftable/stack: fsync "tables.list" during compaction Message-ID: <7bdafc9bd7f53f38a24d69a563615b6ad484e1ba.1706592127.git.ps@pks.im> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In 1df18a1c9a (reftable: honor core.fsync, 2024-01-23), we have added code to fsync both newly written reftables as well as "tables.list" to disk. But there are two code paths where "tables.list" is being written: - When appending a new table due to a normal ref update. - When compacting a range of tables during compaction. We have only addressed the former code path, but do not yet sync the new "tables.list" file in the latter. Fix this ommission. Note that we are not yet adding any tests. These tests will be added once the "reftable" backend has been upstreamed. Signed-off-by: Patrick Steinhardt --- reftable/stack.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reftable/stack.c b/reftable/stack.c index ab295341cc..01d05933f6 100644 --- a/reftable/stack.c +++ b/reftable/stack.c @@ -1018,6 +1018,14 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last, unlink(new_table_path.buf); goto done; } + + err = fsync_component(FSYNC_COMPONENT_REFERENCE, lock_file_fd); + if (err < 0) { + err = REFTABLE_IO_ERROR; + unlink(new_table_path.buf); + goto done; + } + err = close(lock_file_fd); lock_file_fd = -1; if (err < 0) {