RE: [PATCH] btrfs: scrub: set error stats when tree block spanning stripes
From: Zhao Lei <hidden>
Date: 2015-08-27 01:45:51
Hi, David Sterba
-----Original Message----- From: David Sterba [mailto:dsterba@suse.cz] Sent: Thursday, August 27, 2015 1:20 AM To: Zhao Lei <redacted> Cc: linux-btrfs@vger.kernel.org Subject: Re: [PATCH] btrfs: scrub: set error stats when tree block spanning stripes On Tue, Aug 25, 2015 at 09:45:27PM +0800, Zhao Lei wrote:quoted
It is better to show error stats to user when we found tree block spanning stripes. On a btrfs created by old version of btrfs-convert: Before patch: # btrfs scrub start -B /dev/vdh scrub done for 8b342d35-2904-41ab-b3cb-2f929709cf47 scrub started at Tue Aug 25 21:19:09 2015 and finished after00:00:00quoted
total bytes scrubbed: 53.54MiB with 0 errors # dmesg ... [ 128.711434] BTRFS error (device vdh): scrub: tree block 27054080spanning stripes, ignored. logical=27000832quoted
[ 128.712744] BTRFS error (device vdh): scrub: tree block 27054080spanning stripes, ignored. logical=27066368quoted
... After patch: # btrfs scrub start -B /dev/vdh scrub done for ff7f844b-7a4e-4b1a-88a9-8252ab25be1b scrub started at Tue Aug 25 21:42:29 2015 and finished after00:00:00quoted
total bytes scrubbed: 53.60MiB with 2 errors error details: corrected errors: 0, uncorrectable errors: 2, unverified errors: 0 ERROR: There are uncorrectable errors.I agree that reporting that is a good thing so the syslog is consistent with the status output. Is the error really uncorrectable? I'd have to re-read the reports and root cause analysis again, but can we do it at least via checker?
This type of error-filesystem is created by old btrfs-convert, Reported by: Chris Murphy [off-list ref] In maillist, with title: [BUG] kernel BUG at fs/btrfs/scrub.c:1956!, when scrubbing freshly convert Then we get the reason: It is caused by bug in btrfs-convert. Detail is in maillist titled: RE: [BUG] kernel BUG at fs/btrfs/scrub.c:1956!, when scrubbing freshly converted ext In 2015-7-23 And fixed btrfs-progs, to avoid creating such a wrong filesystem with btrfs-convert, and report this type of error in fsck. With patch titled: [PATCH 0/4] Metadata crossing stripe boundary fixes [PATCH 1/4] btrfs: print-tree: print stripe len of a chunk [PATCH 2/4] btrfs: fsck: Check if a metadata tree block crossing stripe boundary [PATCH 3/4] btrfs: extent-tree: Avoid allocating tree block that cross stripe boundar [PATCH 4/4] btrfs: convert: Avoid allocating metadata extent crossing stripe boundary In 2015-7-23 Also fixed kernel code to avoid panic with: [PATCH] btrfs: Fix scrub panic when leaf accross stripes in btrfs maillist. In 2015-7-23 Above patchs are in current btrfs-progs and integration-4.3 branch. But it is still uncorrectable because neither kernel nor btrfsck can fix it(only can report). In short, it is caused by old version of btrfs-convert, and already fixed, and this patch is used to make scrub report it in output. Thanks Zhaolei
The uncorrectable errors are especially worrisome so I'd like to know what kind of answer should we give.