Marc MERLIN wrote on 2016/02/11 07:13 -0800:
On Thu, Feb 11, 2016 at 07:09:47AM -0800, Marc MERLIN wrote:
On Thu, Feb 11, 2016 at 03:16:47PM +0800, Qu Wenruo wrote:
I started making a dump, image was growing past 3GB, and then it failed
and the image got deleted:

gargamel:~# btrfs-image -s -c 9 /dev/mapper/dshelf1old /mnt/dshelf1/ds1old.dump
Error adding space cache blocks -5

It seems that btrfs-image failed to read space cache, in
read_data_extent() function.

And since there is no "Couldn't map the block XXXX" error message,
either some device is missing or pread64 failed to read the desired
data.

It's a 5 drive raid5 underneath, all drives are there.

Is there a 4G file size limit, or did I hit another problem?

For the 4G file size limit, did you mean the limit from old
filesystem like FAT32?

No, I wrote on btrfs, so it's not a filesystem limit, but I meant that
maybe if there was a 32bit pointer somewhere, it could have caused this.
I did use the 64bit version of the tools on a 64bit kernel though, so I
don't see why it could have happened.

I didn't think there is such limit for modern Linux filesystem, or
normal read/write operation won't has such limit either.

Agreed.

At this point, is there anything else I should get/do before I wipe this
filesystem?

There is still a last chance.

If btrfsck still report original error about "bad file extent" in root: 45851/45852/...
Btrfs-debug-tree may provide useful info by dumping only that root.

# btrfs-debug-tree -t 45851

But the problem is, there is no filename fuzz option.
You need to mask all the filenames in INODE_REF/DIR_ITEM/DIR_INDEX by script, or just grep the affected inode info following the pattern "key (<INODE_NUM>".

At least this should tell us what's the problem and we can check manually to determine if it's fixable.


And I just remember that, if you only need to get a clean fs without fsck warning, trying removing all affected subvolumes is possible idea.

Thanks,
Qu

I should note that I can mount it fine and read/write to it.
I also ran fsck check --repair on it more than once.

Marc



--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to