From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua0-f193.google.com ([209.85.217.193]:37977 "EHLO mail-ua0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932282AbeEWKoQ (ORCPT ); Wed, 23 May 2018 06:44:16 -0400 MIME-Version: 1.0 Reply-To: fdmanana@gmail.com In-Reply-To: References: From: Filipe Manana Date: Wed, 23 May 2018 11:44:14 +0100 Message-ID: Subject: Re: Strange behavior (possible bugs) in btrfs To: Vijay Chidambaram Cc: Linux Btrfs , Soujanya Ponnapalli , Jayashree Mohan , linux-xfs@vger.kernel.org, Dave Chinner Content-Type: text/plain; charset="UTF-8" Sender: linux-btrfs-owner@vger.kernel.org List-ID: On Mon, Apr 30, 2018 at 5:04 PM, Vijay Chidambaram wrote: > Hi, > > We found two more cases where the btrfs behavior is a little strange. > In one case, an fsync-ed file goes missing after a crash. In the > other, a renamed file shows up in both directories after a crash. > > Workload 1: > > mkdir A > mkdir B > mkdir A/C > creat B/foo > fsync B/foo > link B/foo A/C/foo > fsync A > -- crash -- > > Expected state after recovery: > B B/foo A A/C exist Why don't you expect A/C/foo as well? I would expect it to be persisted. With xfs we don't get A/C/foo persisted, but it's persisted with ext4 and f2fs. Adding xfs folks in cc to confirm the expected behaviour. > > What we find: > Only B B/foo exist > > A is lost even after explicit fsync to A. > > Workload 2: > > mkdir A > mkdir A/C > rename A/C B > touch B/bar > fsync B/bar > rename B/bar A/bar > rename A B (replacing B with A at this point) > fsync B/bar > -- crash -- > > Expected contents after recovery: > A/bar > > What we find after recovery: > A/bar > B/bar > > We think this breaks rename's atomicity guarantee. bar should be > present in either A or B, but now it is present in both. > > Thanks, > Vijay > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Filipe David Manana, “Whether you think you can, or you think you can't — you're right.”