I fear, I broke my FS by running btrfsck. I tried 'btrfsck --repair' and it fixed several problems but finally crashed with some debug message from 'extent-tree.c', so I also tried 'btrfsck --repair --init-extent-tree'. Since then I can't mount the FS anymore:

> mount -t btrfs /dev/mapper/primary-home /home

produces log messages:

Jan 01 21:45:09 home kernel: btrfs: device fsid 31a5d433-4f7b-49cc-9bc0-9422471f5194 devid 1 transid 4793 /dev/mapper/primary-home
Jan 01 21:45:09 home kernel: btrfs: disk space caching is enabled
Jan 01 21:45:09 home kernel: parent transid verify failed on 2176851968 wanted 4792 found 4793 Jan 01 21:45:09 home kernel: parent transid verify failed on 2176851968 wanted 4792 found 4793
Jan 01 21:45:09 home kernel: btrfs: open_ctree failed

The FS operates in RAID1-mode over 2 block devices /dev/mapper/primary-home and /dev/mapper/secondary-home. Trying to rerun 'btrfsck --repair' or 'btrfsck --repair --init-extent-tree' (for both devices) still exits with a debug assertion:

> btrfsck --repair /dev/mapper/primary-home
parent transid verify failed on 2176851968 wanted 4792 found 4793
Ignoring transid failure
checking extents
bad block 2783195136
ref mismatch on [1103101952 4096] extent item 0, found 1
incorrect offsets 3200 4794
btrfsck: extent-tree.c:2717: alloc_reserved_tree_block: Assertion `!(ret)' failed.
enabling repair mode
Checking filesystem on /dev/mapper/primary-home
UUID: 31a5d433-4f7b-49cc-9bc0-9422471f5194

> btrfsck --repair /dev/mapper/secondary-home
parent transid verify failed on 2176851968 wanted 4792 found 4793
Ignoring transid failure
checking extents
bad block 2783195136
ref mismatch on [1103101952 4096] extent item 0, found 1
incorrect offsets 3200 4794
btrfsck: extent-tree.c:2717: alloc_reserved_tree_block: Assertion `!(ret)' failed.
enabling repair mode
Checking filesystem on /dev/mapper/secondary-home
UUID: 31a5d433-4f7b-49cc-9bc0-9422471f5194

> btrfsck --repair --init-extent-tree /dev/mapper/primary-home
parent transid verify failed on 2176851968 wanted 4792 found 4793
Ignoring transid failure
btrfsck: root-tree.c:80: btrfs_update_root: Assertion `!(ret != 0)' failed.
enabling repair mode
Checking filesystem on /dev/mapper/primary-home
UUID: 31a5d433-4f7b-49cc-9bc0-9422471f5194
Creating a new extent tree

> btrfsck --repair --init-extent-tree /dev/mapper/secondary-home
parent transid verify failed on 2176851968 wanted 4792 found 4793
Ignoring transid failure
btrfsck: root-tree.c:80: btrfs_update_root: Assertion `!(ret != 0)' failed.
enabling repair mode
Checking filesystem on /dev/sda1
UUID: 31a5d433-4f7b-49cc-9bc0-9422471f5194
Creating a new extent tree

Can the FS be repaired or at least the data be recovered? Apparently I found a bug in btrfsck which needs fixing. If it helps, I attached the output of 'btrfs-debug-tree -e'.

Attachment: debug-tree.log.gz
Description: application/gzip

Reply via email to