linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: Kai Krakow <hurikhan77@gmail.com>, <linux-btrfs@vger.kernel.org>
Subject: Re: bad metadata crossing stripe boundary
Date: Thu, 31 Mar 2016 10:31:49 +0800	[thread overview]
Message-ID: <56FC8C15.5060002@cn.fujitsu.com> (raw)
In-Reply-To: <56FC7E6D.8010805@cn.fujitsu.com>



Qu Wenruo wrote on 2016/03/31 09:33 +0800:
>
>
> Kai Krakow wrote on 2016/03/28 12:02 +0200:
>> Changing subject to reflect the current topic...
>>
>> Am Sun, 27 Mar 2016 21:55:40 +0800
>> schrieb Qu Wenruo <quwenruo.btrfs@gmx.com>:
>>
>>>> I finally got copy&paste data:
>>>>
>>>> # before mounting let's check the FS:
>>>>
>>>> $ sudo btrfsck /dev/disk/by-label/usb-backup
>>>> Checking filesystem on /dev/disk/by-label/usb-backup
>>>> UUID: 1318ec21-c421-4e36-a44a-7be3d41f9c3f
>>>> checking extents
>>>> bad metadata [156041216, 156057600) crossing stripe boundary
>>>> bad metadata [181403648, 181420032) crossing stripe boundary
>>>> bad metadata [392167424, 392183808) crossing stripe boundary
>>>> bad metadata [783482880, 783499264) crossing stripe boundary
>>>> bad metadata [784924672, 784941056) crossing stripe boundary
>>>> bad metadata [130151612416, 130151628800) crossing stripe boundary
>>>> bad metadata [162826813440, 162826829824) crossing stripe boundary
>>>> bad metadata [162927083520, 162927099904) crossing stripe boundary
>>>> bad metadata [619740659712, 619740676096) crossing stripe boundary
>>>> bad metadata [619781947392, 619781963776) crossing stripe boundary
>>>> bad metadata [619795644416, 619795660800) crossing stripe boundary
>>>> bad metadata [619816091648, 619816108032) crossing stripe boundary
>>>> bad metadata [620011388928, 620011405312) crossing stripe boundary
>>>> bad metadata [890992459776, 890992476160) crossing stripe boundary
>>>> bad metadata [891022737408, 891022753792) crossing stripe boundary
>>>> bad metadata [891101773824, 891101790208) crossing stripe boundary
>>>> bad metadata [891301199872, 891301216256) crossing stripe boundary
>>>> bad metadata [1012219314176, 1012219330560) crossing stripe boundary
>>>> bad metadata [1017202409472, 1017202425856) crossing stripe boundary
>>>> bad metadata [1017365397504, 1017365413888) crossing stripe boundary
>>>> bad metadata [1020764422144, 1020764438528) crossing stripe boundary
>>>> bad metadata [1251103342592, 1251103358976) crossing stripe boundary
>>>> bad metadata [1251144695808, 1251144712192) crossing stripe boundary
>>>> bad metadata [1251147055104, 1251147071488) crossing stripe boundary
>>>> bad metadata [1259271225344, 1259271241728) crossing stripe boundary
>>>> bad metadata [1266223611904, 1266223628288) crossing stripe boundary
>>>> bad metadata [1304750063616, 1304750080000) crossing stripe boundary
>>>> bad metadata [1304790106112, 1304790122496) crossing stripe boundary
>>>> bad metadata [1304850792448, 1304850808832) crossing stripe boundary
>>>> bad metadata [1304869928960, 1304869945344) crossing stripe boundary
>>>> bad metadata [1305089540096, 1305089556480) crossing stripe boundary
>>>> bad metadata [1309561651200, 1309561667584) crossing stripe boundary
>>>> bad metadata [1309581443072, 1309581459456) crossing stripe boundary
>>>> bad metadata [1309583671296, 1309583687680) crossing stripe boundary
>>>> bad metadata [1309942808576, 1309942824960) crossing stripe boundary
>>>> bad metadata [1310050549760, 1310050566144) crossing stripe boundary
>>>> bad metadata [1313031585792, 1313031602176) crossing stripe boundary
>>>> bad metadata [1313232912384, 1313232928768) crossing stripe boundary
>>>> bad metadata [1555210764288, 1555210780672) crossing stripe boundary
>>>> bad metadata [1555395182592, 1555395198976) crossing stripe boundary
>>>> bad metadata [2050576744448, 2050576760832) crossing stripe boundary
>>>> bad metadata [2050803957760, 2050803974144) crossing stripe boundary
>>>> bad metadata [2050969108480, 2050969124864) crossing stripe
>>>> boundary
>>>
>>> Already mentioned in another reply, this *seems* to be false alert.
>>> Latest btrfs-progs would help.
>>
>> No, btrfs-progs 4.5 reports those, too (as far as I understood, this
>> includes the fixes for bogus "bad metadata" errors, tho I thought this
>> has already been fixed in 4.2.1, I used 4.4.1). There were some nbytes
>> wrong errors before which I already repaired using "--repair". I think
>> that's okay, I had those in the past and it looks like btrfsck can
>> repair those now (and I don't have to delete and recreate the files).
>> It caused problems with "du" and "df" in the past, a problem that I'm
>> currently facing too. So I better fixed them.
>>
>> With that done, the backup fs now only reports "bad metadata" which
>> have been there before space cache v2. Full output below.
>>
>>>> checking free space tree cache and super generation don't match,
>>>> space cache will be invalidated checking fs roots
>>> Err, I found a missing '\n' before "checking fs roots".
>>
>> Copy and paste problem. Claws mail pretends to be smarter than me
>> - I missed to fix that one. ;-)
>
> I was searching for the missing '\n' and hopes to find any chance to
> submit a new patch.
> What a pity. :(
>
>>
>>> And it seems that fs roots and extent tree are all OK.
>>>
>>> Quite surprising.
>>> The only possible problem seems to be outdated space cache.
>>>
>>> Maybe mount with "-o clear_cache" will help, but I don't think that's
>>> the cause.
>>
>> Helped, it automatically reverted the FS back to space cache v1 with
>> incompat flag cleared. (I wouldn't have enabled v2 if it wasn't
>> documented that this is possible)
>>
>>>> checking csums
>>>> checking root refs
>>>> found 1860217443214 bytes used err is 0
>>>> total csum bytes: 1805105116
>>>> total tree bytes: 11793776640
>>>> total fs tree bytes: 8220835840
>>>> total extent tree bytes: 1443315712
>>>> btree space waste bytes: 2307850845
>>>> file data blocks allocated: 2137151094784
>>>>    referenced 2706830905344
>>>>
>>>> # now let's wait for the backup to mount the FS and look at dmesg:
>>>>
>>>> [21375.606479] BTRFS info (device sde1): force zlib compression
>>>> [21375.606483] BTRFS info (device sde1): using free space tree
>>>
>>> Thanks to Chris Murphy, I almost ignored such line.
>>> Not familiar with the new free space cache tree, sorry.
>>>
>>> If "clear_cache" doesn't help, then try "nospace_cache" to disable
>>> the entire space cache.
>>
>> It's gone now, ignore that. It's back to the situation before space
>> cache v2. Minus some "nbytes wrong" errors I had and fixed.
>
> Nice to see it works.
>
>>
>> Nevertheless, I'm now using btrfs-progs 4.5. Here's the full output:
>> (the lines seem to be partly out of order, probably due to the
>> redirection)
>>
>> $ sudo btrfsck /dev/sde1 2>&1 | tee btrfsck-label-usb-backup.txt
>> checking extents
>> bad metadata [156041216, 156057600) crossing stripe boundary
>> bad metadata [181403648, 181420032) crossing stripe boundary
>> bad metadata [392167424, 392183808) crossing stripe boundary
>> bad metadata [783482880, 783499264) crossing stripe boundary
>> bad metadata [784924672, 784941056) crossing stripe boundary
>> bad metadata [130151612416, 130151628800) crossing stripe boundary
>> bad metadata [162826813440, 162826829824) crossing stripe boundary
>> bad metadata [162927083520, 162927099904) crossing stripe boundary
>> bad metadata [619740659712, 619740676096) crossing stripe boundary
>> bad metadata [619781947392, 619781963776) crossing stripe boundary
>> bad metadata [619795644416, 619795660800) crossing stripe boundary
>> bad metadata [619816091648, 619816108032) crossing stripe boundary
>> bad metadata [620011388928, 620011405312) crossing stripe boundary
>> bad metadata [890992459776, 890992476160) crossing stripe boundary
>> bad metadata [891022737408, 891022753792) crossing stripe boundary
>> bad metadata [891101773824, 891101790208) crossing stripe boundary
>> bad metadata [891301199872, 891301216256) crossing stripe boundary
>> bad metadata [1012219314176, 1012219330560) crossing stripe boundary
>> bad metadata [1017202409472, 1017202425856) crossing stripe boundary
>> bad metadata [1017365397504, 1017365413888) crossing stripe boundary
>> bad metadata [1020764422144, 1020764438528) crossing stripe boundary
>> bad metadata [1251103342592, 1251103358976) crossing stripe boundary
>> bad metadata [1251145809920, 1251145826304) crossing stripe boundary
>> bad metadata [1251147055104, 1251147071488) crossing stripe boundary
>> bad metadata [1259271225344, 1259271241728) crossing stripe boundary
>> bad metadata [1266223611904, 1266223628288) crossing stripe boundary
>> bad metadata [1304750063616, 1304750080000) crossing stripe boundary
>> bad metadata [1304790106112, 1304790122496) crossing stripe boundary
>> bad metadata [1304850792448, 1304850808832) crossing stripe boundary
>> bad metadata [1304869928960, 1304869945344) crossing stripe boundary
>> bad metadata [1305089540096, 1305089556480) crossing stripe boundary
>> bad metadata [1309581443072, 1309581459456) crossing stripe boundary
>> bad metadata [1309583671296, 1309583687680) crossing stripe boundary
>> bad metadata [1309942808576, 1309942824960) crossing stripe boundary
>> bad metadata [1310050549760, 1310050566144) crossing stripe boundary
>> bad metadata [1313031585792, 1313031602176) crossing stripe boundary
>> bad metadata [1313232912384, 1313232928768) crossing stripe boundary
>> bad metadata [1555210764288, 1555210780672) crossing stripe boundary
>> bad metadata [1555395182592, 1555395198976) crossing stripe boundary
>> bad metadata [2050576744448, 2050576760832) crossing stripe boundary
>> bad metadata [2050803957760, 2050803974144) crossing stripe boundary
>> bad metadata [2050969108480, 2050969124864) crossing stripe boundary
>> checking free space cache
>> checking fs roots
>> checking csums
>> checking root refs
>> Checking filesystem on /dev/sde1
>> UUID: 1318ec21-c421-4e36-a44a-7be3d41f9c3f
>> found 1860212384661 bytes used err is 0
>> total csum bytes: 1805105124
>> total tree bytes: 11788713984
>> total fs tree bytes: 8220835840
>> total extent tree bytes: 1443282944
>> btree space waste bytes: 2306453698
>> file data blocks allocated: 2137152151552
>>   referenced 2706831974400
>>
>> That drive was not converted so either "bad metadata" is still a false
>> alert or there is something else going wrong in btrfs.
>>
> It seems to be a false alert.
>
> Just pick the last [2050969108480, 2050969124864) as an example,
> In fact, they are inside the same 64K block:
> 2050969108480 / 64K == (2050969124864 - 1) / 64K == 31295305.
>
> I'd better double check the codes to fix the false alert before more
> such report.
>
> Thanks,
> Qu
>

Would you please try the following patch based on v4.5 btrfs-progs?
https://patchwork.kernel.org/patch/8706891/

According to your output, all the output is false alert.
All the extent starting bytenr can be divided by 64K, and I think at 
initial time, its 'max_size' may be set to 0, causing "start + 0 - 1" to 
be inside previous 64K range.

The patch would update cross_stripe every time the extent is updated, so 
such temporary false alert should disappear.

Thanks,
Qu
>
> --
> 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



  reply	other threads:[~2016-03-31  2:31 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-22  8:03 csum errors in VirtualBox VDI files Kai Krakow
2016-03-22  8:06 ` Kai Krakow
2016-03-22  8:07 ` Kai Krakow
2016-03-22  8:47 ` Qu Wenruo
2016-03-22 18:48   ` Kai Krakow
2016-03-22 19:42     ` Chris Murphy
2016-03-22 20:35       ` Kai Krakow
2016-03-23  4:16     ` Qu Wenruo
2016-03-26 19:30       ` Kai Krakow
2016-03-26 20:28         ` Chris Murphy
2016-03-26 21:04           ` Chris Murphy
2016-03-27  1:30             ` Kai Krakow
2016-03-27  4:57               ` Chris Murphy
2016-03-27 17:31                 ` Kai Krakow
2016-03-27 19:04                   ` Chris Murphy
2016-03-28 10:30                     ` Kai Krakow
2016-03-27  1:01           ` Kai Krakow
2016-03-27  1:50         ` Kai Krakow
2016-03-27  4:43           ` Chris Murphy
2016-03-27 13:55           ` Qu Wenruo
2016-03-28 10:02             ` bad metadata crossing stripe boundary (was: csum errors in VirtualBox VDI files) Kai Krakow
2016-03-31  1:33               ` bad metadata crossing stripe boundary Qu Wenruo
2016-03-31  2:31                 ` Qu Wenruo [this message]
2016-03-31 20:27                   ` Kai Krakow
2016-03-31 20:37                     ` Henk Slager
2016-03-31 21:00                   ` Marc Haber
2016-03-31 21:16                     ` Kai Krakow
2016-03-31 21:35                       ` Kai Krakow
2016-04-01  5:57                       ` Marc Haber
2016-04-02  9:03                         ` Kai Krakow
2016-04-02  9:44                           ` Marc Haber
2016-04-02 18:31                             ` Kai Krakow
2016-04-02 19:39                               ` Patrik Lundquist
2016-04-03  8:39                               ` Marc Haber
2016-04-02 19:41                         ` Chris Murphy
2016-04-03  8:51                           ` Marc Haber
2016-04-03 18:29                             ` Chris Murphy
2016-03-27 13:46         ` csum errors in VirtualBox VDI files Qu Wenruo
2016-03-22 20:07 ` Henk Slager
2016-03-22 21:23   ` Kai Krakow
2016-03-27 12:18 ` Martin Steigerwald
2016-03-27 16:53   ` Kai Krakow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56FC8C15.5060002@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=hurikhan77@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).