BTRFS critical: unable to find logical 39209762816 length 4096

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have a filesystem that appears to have lost it's data.  I believe the ATA interface on the
host has failed, which has lead to this problem.  It would be nice to recover the data if
possible.  Prior to realizing the ATA bus was the issue I had two other BTRFS filesystems
connected, all of which were repaired by connecting to another ATA bus then scrubbing.

This particular filesystem has no subvolume snapshots, though I have been using snapper on
other filesystems to manage this.

The filesystem can be mounted without issue, but when I try to scrub it aborts immediately
with the following status.  Before disconnecting I believe the filesystem was being
automatically remounted read-only when writes were attempted, though I haven't confirmed this.

  $ sudo btrfs scrub status /mnt/crypt-timemachine
  scrub status for a09ae23f-f5b9-4ff4-a29a-d2fd81c6d450
          scrub started at Mon May  4 14:50:42 2020 and was aborted after 00:00:00
          total bytes scrubbed: 264.00KiB with 0 errors

In the kernel logs I see:

  kernel: BTRFS critical (device dm-4): unable to find logical 39209762816 length 4096
  kernel: BTRFS critical (device dm-4): unable to find logical 39209762816 length 4096
  kernel: BTRFS critical (device dm-4): unable to find logical 39209762816 length 16384

The output of btrfs check:

  $ sudo btrfs check /dev/mapper/crypt-timemachine
  Checking filesystem on /dev/mapper/crypt-timemachine
  UUID: a09ae23f-f5b9-4ff4-a29a-d2fd81c6d450
  checking extents
  Couldn't map the block 39209762816
  Invalid mapping for 39209762816-39209779200, got 588439879680-588976750592
  Couldn't map the block 39209762816
  bytenr mismatch, want=39209762816, have=0
  ref mismatch on [39209762816 16384] extent item 0, found 1
  tree backref 39209762816 parent 7 root 7 not found in extent tree
  backpointer mismatch on [39209762816 16384]
  owner ref check failed [39209762816 16384]
  ref mismatch on [588965576704 16384] extent item 1, found 0
  backref 588965576704 root 7 not referenced back 0x55ccdfad6660
  incorrect global backref count on 588965576704 found 1 wanted 0
  backpointer mismatch on [588965576704 16384]
  owner ref check failed [588965576704 16384]
  ERROR: errors found in extent allocation tree or chunk allocation
  checking free space cache
  checking fs roots
  checking csums
  Couldn't map the block 39209762816
  Invalid mapping for 39209762816-39209779200, got 588439879680-588976750592
  Couldn't map the block 39209762816
  bytenr mismatch, want=39209762816, have=0
  Error going to next leaf -5
  checking root refs
  found 712704 bytes used, error(s) found
  total csum bytes: 8
  total tree bytes: 147456
  total fs tree bytes: 32768
  total extent tree bytes: 16384
  btree space waste bytes: 132656
  file data blocks allocated: 532480
   referenced 532480

SMART output for the disk doesn't suggest any issues with the disk itself, i.e.
Offline_Uncorrectable, UDMA_CRC_Error_Count, Reallocated_Event_Count,
Current_Pending_Sector, Reallocated_Sector_Ct, Seek_Error_Rate, are all 0.  Extended offline
tests are run regularly and have all completed without error.

I've tried to scrub on multiple hosts with varying kernels and btrfs-progs

1. Original host was Debian Buster on a backports kernel:
   5.4.0-0.bpo.4-amd64 #1 SMP Debian 5.4.19-1~bpo10+1 (2020-03-09) x86_64 GNU/Linux

   Started with stock btrfs-progs 4.20.1-2, then tried the package from backports,
   btrfs-progs 5.2.1-1~bpo10+1

2. Second host was Ubuntu 18.04 with a mainline kernel:
   5.6.7-050607-generic #202004230933 SMP Thu Apr 23 09:35:28 UTC 2020 x86_64 GNU/Linux

   Only tried stock btrfs-progs here: 4.15.1-1build1

   Disk is connected via a USB to SATA adapter.

3. Third system is a stocket Ubuntu 18.04
   4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64 GNU/Linux

   With btrfs-progs 4.15.1-1build1.

At this point is there any hope of recovering the data?  If not, is it worth trying to do a
repair with `btrfs check`, or anything else?  Or should I just go ahead and re-format the disk?

Any help is much appreciated.

Thanks,
Jinn



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux