linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Cameron Kelley <cameronkelley28@gmail.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>, linux-btrfs@vger.kernel.org
Subject: Re: Mount failing - unable to find logical
Date: Tue, 17 Oct 2017 20:22:30 -0700	[thread overview]
Message-ID: <1badda3c-c030-502c-d09d-cb619c333fc8@gmail.com> (raw)
In-Reply-To: <93bfd00c-1ade-176d-0c0f-675fe904ab88@gmx.com>



On 10-17-2017 6:24 PM, Qu Wenruo wrote:
 >
 >
 > On 2017-10-18 04:43, Cameron Kelley wrote:
 >> Hey btrfs gurus,
 >>
 >> I have a 4 disk btrfs filesystem that has suddenly stopped mounting
 >> after a recent reboot. The data is in an odd configuration due to
 >> originally being in a 3 disk RAID1 before adding a 4th disk and running
 >> a balance to convert to RAID10. There wasn't enough free space to
 >> completely convert, so about half the data is still in RAID1 while the
 >> other half is in RAID10. Both metadata and system are RAID10. It has
 >> been in this configuration for 6 months or so now since adding the 4th
 >> disk. It just holds archived media and hasn't had any data added or
 >> modified in quite some time. I feel pretty stupid now for not
 >> correcting that sooner though.
 >>
 >> I have tried mounting with different mount options for recovery, ro,
 >> degraded, etc. Log shows errors about "unable to find logical
 >> 3746892939264 length 4096"
 >>
 >> When I do a btrfs check, it doesn't find any issues. Running
 >> btrfs-find-root comes up with a message about a block that the
 >> generation doesn't match. If I specify that block on the btrfs check, I
 >> get transid verify failures.
 >>
 >> I ran a dry run of a recovery of the entire filesystem which runs
 >> through every file with no errors. I would just restore the data and
 >> start fresh, but unfortunately I don't have the free space at the
 >> moment for the ~4.5TB of data.
 >>
 >> I also ran full smart self tests on all 4 disks with no errors.
 >>
 >> root@nas2:~# uname -a
 >> Linux nas2 4.13.7-041307-generic #201710141430 SMP Sat Oct 14 14:39:06
 >> UTC 2017 i686 i686 i686 GNU/Linux
 >
 > I don't think i686 kernel will cause any difference, but considering
 > most of us are using x86_64 to develop/test, maybe it will be a good
 > idea to upgrade to x86_64 kernel?
 >

Thanks for the quick response.

This is an old x86 Pentium NAS I inherited, so unfortunately I'm stuck on 
a 32-bit kernel. If push comes to shove, I can disassemble another x64 
machine to test with.

 >>
 >> root@nas2:~# btrfs version
 >> btrfs-progs v4.13.2
 >>
 >> root@nas2:~# btrfs fi show
 >> Label: none  uuid: 827029a4-8625-4a50-a22d-0fd28dbe2d36
 >>          Total devices 4 FS bytes used 4.60TiB
 >>          devid    1 size 2.73TiB used 2.33TiB path /dev/sdb1
 >>          devid    2 size 2.73TiB used 2.33TiB path /dev/sdc
 >>          devid    3 size 2.73TiB used 2.33TiB path /dev/sdd1
 >>          devid    4 size 2.73TiB used 2.33TiB path /dev/sde1
 >>
 >> root@nas2:~# mount /dev/sdb1 /mnt/nas2/
 >> mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
 >>         missing codepage or helper program, or other error
 >>
 >>         In some cases useful info is found in syslog - try
 >>         dmesg | tail or so.
 >>
 >> root@nas2:~# dmesg | tail
 >> [  801.332623] BTRFS info (device sdb1): disk space caching is enabled
 >> [  801.332627] BTRFS info (device sdb1): has skinny extents
 >> [  801.333386] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.333472] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.333769] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.333835] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.333909] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.333968] BTRFS critical (device sdb1): unable to find logical
 >> 3746892939264 length 4096
 >> [  801.334028] BTRFS error (device sdb1): failed to read chunk root
 >> [  801.365452] BTRFS error (device sdb1): open_ctree failed
 >
 > Some of the chunk tree failed to be read out.
 >
 > Either chunk tree or system chunk array has some problem.
 >
 > Would you please dump the chunk tree and superblock by the following
 > commands?
 >
 > # btrfs inspect-internal dump-tree -t chunk /dev/sdb1
 > # btrfs inspect-internal dump-super -fa /dev/sdb1
 >

# btrfs inspect-internal dump-tree -t chunk /dev/sdb1
http://pastebin.ubuntu.com/25763241/

# btrfs inspect-internal dump-super -fa /dev/sdb1
http://pastebin.ubuntu.com/25763246/

 >>
 >> root@nas2:~# btrfs check /dev/sdb1
 >> Checking filesystem on /dev/sdb1
 >> UUID: 827029a4-8625-4a50-a22d-0fd28dbe2d36
 >> checking extents
 >> checking free space cache
 >> cache and super generation don't match, space cache will be invalidated
 >> checking fs roots
 >> checking csums
 >> checking root refs
 >> found 5054297628672 bytes used, no error found
 >> total csum bytes: 4929567064
 >> total tree bytes: 5197856768
 >> total fs tree bytes: 15237120
 >> total extent tree bytes: 43433984
 >> btree space waste bytes: 161510789
 >> file data blocks allocated: 5050024812544
 >>   referenced 5049610178560
 >
 > Unless we has some bug in btrfs-progs chunk mapping, the result seems
 > quite good.
 >
 > Just in case, would you please also run "btrfs check --mode=lowmem
 > /dev/sdb1" to see if it's OK?
 >

# btrfs check --mode=lowmem /dev/sdb1
Checking filesystem on /dev/sdb1
UUID: 827029a4-8625-4a50-a22d-0fd28dbe2d36
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 5053072662528 bytes used, no error found
total csum bytes: 4929567064
total tree bytes: 5195988992
total fs tree bytes: 15237120
total extent tree bytes: 43368448
btree space waste bytes: 161593371
file data blocks allocated: 5048801714176
  referenced 5048387080192

 >>
 >> root@nas2:~# btrfs-find-root /dev/sdb1
 >> Superblock thinks the generation is 147970
 >> Superblock thinks the level is 1
 >> Found tree root at 21335861559296 gen 147970 level 1
 >> Well block 21335857758208(gen: 147969 level: 1) seems good, but
 >> generation/level doesn't match, want gen: 147970 level: 1
 >
 > Since it's mostly related to chunk tree, would you please try the
 > following command?
 >
 > # btrfs-find-root -o 3 /dev/sdb1
 > # btrfs check --chunk-root <the next chunk root bytenr> /dev/sdb1
 >
 > Thanks,
 > Qu
 >

# btrfs-find-root -o 3 /dev/sdb1
Superblock thinks the generation is 147728
Superblock thinks the level is 1
Found tree root at 21339078983680 gen 147728 level 1

# btrfs check --chunk-root 21339078983680 /dev/sdb1
Checking filesystem on /dev/sdb1
UUID: 827029a4-8625-4a50-a22d-0fd28dbe2d36
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 5053072662528 bytes used, no error found
total csum bytes: 4929567064
total tree bytes: 5195988992
total fs tree bytes: 15237120
total extent tree bytes: 43368448
btree space waste bytes: 161593371
file data blocks allocated: 5048801714176
  referenced 5048387080192

 >>
 >> root@nas2:~# btrfs check -r 21335857758208 /dev/sdb1
 >> parent transid verify failed on 21335857758208 wanted 147970 found 147969
 >> parent transid verify failed on 21335857758208 wanted 147970 found 147969
 >> parent transid verify failed on 21335857758208 wanted 147970 found 147969
 >> parent transid verify failed on 21335857758208 wanted 147970 found 147969
 >> Ignoring transid failure
 >> Checking filesystem on /dev/sdb1
 >> UUID: 827029a4-8625-4a50-a22d-0fd28dbe2d36
 >> checking extents
 >> checking free space cache
 >> cache and super generation don't match, space cache will be invalidated
 >> checking fs roots
 >> checking csums
 >> checking root refs
 >> ERROR: transid errors in file system
 >> found 5054297628672 bytes used, error(s) found
 >> total csum bytes: 4929567064
 >> total tree bytes: 5197856768
 >> total fs tree bytes: 15237120
 >> total extent tree bytes: 43433984
 >> btree space waste bytes: 161510789
 >> file data blocks allocated: 5050024812544
 >>   referenced 5049610178560
 >> --
 >> 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:[~2017-10-18  3:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 20:43 Mount failing - unable to find logical Cameron Kelley
2017-10-18  1:24 ` Qu Wenruo
2017-10-18  3:22   ` Cameron Kelley [this message]
2017-10-18  4:36     ` Qu Wenruo
2017-10-18  5:10   ` Roman Mamedov
2017-10-18 16:40     ` SOLVED - 32-bit kernel 4.13 bug - " Cameron Kelley

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=1badda3c-c030-502c-d09d-cb619c333fc8@gmail.com \
    --to=cameronkelley28@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=quwenruo.btrfs@gmx.com \
    /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).