Btrfs-convert assert at volumes.c:1846
Hi David and all,
Recently I'm reworking the btrfs-convert chunk allocater to make it able to separate data and meta chunk.
But when I was testing, I found that, your devel branch, with the following commit just fails to convert an empty ext4 filesystem:
commit 0002085c53a5ac9ad1c538bfc3e39c80891c4a1a
Author: Zhao Lei <[email protected]> Date: Mon Oct 12 21:23:04 2015 +0800
btrfs-progs: fragments: use btrfs_open_dir for btrfs-fragments command
We can use btrfs_open_dir() to check whether target dir is in btrfs's mount point before open, instead of checking it in deeper code, and return fuzzy error message.
Before patch:
./btrfs-fragments -o 123 /mnt/tmp1
ERROR: can't perform the search
After patch:
# ./btrfs-fragments -o 123 /mnt/tmp1
ERROR: not a btrfs filesystem: /mnt/tmp1
The error output is:
create btrfs filesystem:
blocksize: 4096 nodesize: 16384 features: extref, skinny-metadata (default)
volumes.c:1846: btrfs_read_sys_array: Assertion failed. ./btrfs-convert(btrfs_read_sys_array+0x1b8)[0x42422c] ./btrfs-convert(btrfs_setup_chunk_tree_and_device_map+0x41)[0x41176b] ./btrfs-convert[0x411a22] ./btrfs-convert(open_ctree_fd+0x10)[0x411b59] ./btrfs-convert(main+0x1814)[0x4382d7] /usr/lib/libc.so.6(__libc_start_main+0xf0)[0x7f5571479610] ./btrfs-convert(_start+0x29)[0x407979]
Any ideas?
I hope it won't block me too long to test my rework.
Thanks,
Qu
Quoted 11 lines · Qu Wenruo
Recently I'm reworking the btrfs-convert chunk allocater to make it able to separate data and meta chunk.
But when I was testing, I found that, your devel branch, with the following commit just fails to convert an empty ext4 filesystem:
commit
0002085c53a5ac9ad1c538bfc3e39c80891c4a1aAuthor: Zhao Lei <[email protected]> Date: Mon Oct 12 21:23:04 2015 +0800btrfs-progs: fragments: use
btrfs_open_dirfor btrfs-fragments command
That's the top commit, but it's not causing the breakage. I've bisected the breakage to the patch
commit 893b7a6815a735449613afbb4040f486a4a4e1d0
Author: Qu Wenruo <[email protected]> Date: Wed May 13 17:15:34 2015 +0800
btrfs-progs: Read the whole superblock instead of struct btrfs_super_block.
Looks familiar? :)
The patch caused some trouble in the past (on ppc64 machines) and I've been holding it back due to that. The plan is to add it to 4.3 devel branch and get it fixed before the final release, so the convert could fail in the meantime. I'm trying to put together all pending branches for the next release so I can't say when the convert will be fixed.
Quoted 24 lines · David Sterba
Quoted 11 lines · Qu Wenruo
Recently I'm reworking the btrfs-convert chunk allocater to make it able to separate data and meta chunk.
But when I was testing, I found that, your devel branch, with the following commit just fails to convert an empty ext4 filesystem:
commit
0002085c53a5ac9ad1c538bfc3e39c80891c4a1aAuthor: Zhao Lei <[email protected]> Date: Mon Oct 12 21:23:04 2015 +0800btrfs-progs: fragments: use
btrfs_open_dirfor btrfs-fragments commandThat's the top commit, but it's not causing the breakage. I've bisected the breakage to the patch
commit
893b7a6815a735449613afbb4040f486a4a4e1d0Author: Qu Wenruo <[email protected]> Date: Wed May 13 17:15:34 2015 +0800btrfs-progs: Read the whole superblock instead of struct
btrfs_super_block.Looks familiar? :)
Quoted 10 lines
The patch caused some trouble in the past (on ppc64 machines) and I've been holding it back due to that. The plan is to add it to 4.3 devel branch and get it fixed before the final release, so the convert could fail in the meantime. I'm trying to put together all pending branches for the next release so I can't say when the convert will be fixed. --
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks for the bisect, David.
Very interesting, I'll try to fix it in recent days at least to make sure that btrfs-convert can be executed without assert.
Hopes the convert rework for separated chunk profile will arrive in time.
Thanks,
Qu
Qu Wenruo wrote on 2015/10/19 20:38 +0800:
Quoted 39 lines · David Sterba
Quoted 26 lines · Qu Wenruo
Quoted 6 lines
Recently I'm reworking the btrfs-convert chunk allocater to make it able to separate data and meta chunk.
But when I was testing, I found that, your devel branch, with the following commit just fails to convert an empty ext4 filesystem:
Quoted 6 lines
commit
0002085c53a5ac9ad1c538bfc3e39c80891c4a1aAuthor: Zhao Lei <[email protected]> Date: Mon Oct 12 21:23:04 2015 +0800btrfs-progs: fragments: use
btrfs_open_dirfor btrfs-fragments
commandThat's the top commit, but it's not causing the breakage. I've bisected the breakage to the patch
commit
893b7a6815a735449613afbb4040f486a4a4e1d0Author: Qu Wenruo <[email protected]> Date: Wed May 13 17:15:34 2015 +0800btrfs-progs: Read the whole superblock instead of struct
btrfs_super_block.Looks familiar? :)
Quoted 10 lines
The patch caused some trouble in the past (on ppc64 machines) and I've been holding it back due to that. The plan is to add it to 4.3 devel branch and get it fixed before the final release, so the convert could fail in the meantime. I'm trying to put together all pending branches for the next release so I can't say when the convert will be fixed. --
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.htmlThanks for the bisect, David.
Quoted 7 lines
Very interesting, I'll try to fix it in recent days at least to make sure that btrfs-convert can be executed without assert.
Hopes the convert rework for separated chunk profile will arrive in time.
Thanks,
Qu
Finally, the bug is found.
A SUPER AWKWARD TYPO....
See the patch just submitted:
[PATCH] btrfs-progs: Fix a typo which causes super_copy corrupted
And, I think that's also the reason why PPC64 report errors. But unfortunately, there is no PPC64 machine here for me to test.
Hopes someone can help testing it on PPC64.
Thanks,
Qu
Quoted 1 line · Qu Wenruo
Finally, the bug is found.
Great, thanks!
Quoted 2 lines
A SUPER AWKWARD TYPO....
Happens ... :)
Quoted 5 lines
See the patch just submitted:
[PATCH] btrfs-progs: Fix a typo which causessuper_copycorruptedAnd, I think that's also the reason why PPC64 report errors. But unfortunately, there is no PPC64 machine here for me to test.
For now we can use convert and mkfs to test it a bit. Convert crashes on 4k sectors, and with "mkfs.btrfs -n 64k -s 64k --rootdir " we can partially simulate the ppc64 parameters.