* btrfs-convert crashes
@ 2011-04-27 5:20 Brian Parma
2011-04-27 12:05 ` Yan, Zheng
0 siblings, 1 reply; 3+ messages in thread
From: Brian Parma @ 2011-04-27 5:20 UTC (permalink / raw)
To: linux-btrfs
I have a 1.5 TB (1,475,720,773,632) partition that I wanted to convert
from ext4 to btrfs. It is currently used as / for ubuntu 10.10.
I booted into 11.04 beta2 and tried a 'btrfs-convert /dev/sdc1', but
after about 20 minutes it segfaulted.
I performed a:
sck.ext4 -cDfty -C 0 /dev/sdc1
After everything was clean, I downloaded the debugging symbols for btrfs-convert and tried again. Below is the 'bt full' output. I don't have enough free space to copy all the data off, create a fresh btrfs partition, and copy everything back on (I have backups of important stuff). Is there something else I can try to get this to work?
Brian
at: http://pastebin.com/NEwJNzuP
#0 0x00007ffff7444d05 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1 0x00007ffff7448ab6 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2 0x000000000040502c in btrfs_extend_item (trans=<value optimized out>, root=0x633920, path=<value optimized out>, data_size=27) at ctree.c:2525
slot =<value optimized out>
slot_orig =<value optimized out>
leaf = 0x1955250
nritems = 1
data_end =<value optimized out>
old_data =<value optimized out>
i =<value optimized out>
__PRETTY_FUNCTION__ = "btrfs_extend_item"
#3 0x000000000040e32d in btrfs_insert_inode_ref (trans=0xc9ef10, root=0x633920, name=0xcfa314 "gtfntf.f.svn-base", name_len=17,
inode_objectid=<value optimized out>, ref_objectid=<value optimized out>, index=150) at inode-item.c:135
old_size = 3945
path = 0x1639aa0
key = {objectid = 37361107, type = 12 '\f', offset = 37359706}
ref =<value optimized out>
ptr =<value optimized out>
ret =<value optimized out>
ins_len = 27
__PRETTY_FUNCTION__ = "btrfs_insert_inode_ref"
#4 0x0000000000413fff in dir_iterate_proc (dir=<value optimized out>, entry=<value optimized out>, old=0xcfa30c, offset=<value optimized out>,
blocksize=<value optimized out>, buf=<value optimized out>, priv_data=0x7fffffffe370) at convert.c:289
ret =<value optimized out>
file_type =<value optimized out>
objectid = 37361107
dotdot = ".."
location = {objectid = 37361107, type = 1 '\001', offset = 0}
dirent = 0xcfa30c
idata = 0x7fffffffe370
__PRETTY_FUNCTION__ = "dir_iterate_proc"
#5 0x00007ffff7bbdc13 in ext2fs_process_dir_block () from /lib/x86_64-linux-gnu/libext2fs.so.2
No symbol table info available.
#6 0x00007ffff7bbac02 in ext2fs_block_iterate2 () from /lib/x86_64-linux-gnu/libext2fs.so.2
No symbol table info available.
#7 0x00007ffff7bbdfb8 in ext2fs_dir_iterate2 () from /lib/x86_64-linux-gnu/libext2fs.so.2
No symbol table info available.
#8 0x000000000041689d in create_dir_entries (devname=0x7fffffffe897 "/dev/sdc1", datacsum=1, packing=1, noxattr=0) at convert.c:322
err =<value optimized out>
data = {trans = 0xc9ef10, root = 0x633920, inode = 0x7fffffffe1c0, objectid = 37359706, index_cnt = 150, parent = 37359705, errcode = 0}
ret =<value optimized out>
#9 copy_single_inode (devname=0x7fffffffe897 "/dev/sdc1", datacsum=1, packing=1, noxattr=0) at convert.c:1072
ret =<value optimized out>
btrfs_inode = {generation = 1, transid = 140737354044640, size = 4994, nbytes = 0, block_group = 0, nlink = 1, uid = 1000, gid = 1000, mode = 16877,
rdev = 0, flags = 0, sequence = 140737351933932, reserved = {0, 140737354040256, 140733193388033, 0}, atime = {sec = 1303466526, nsec = 0}, ctime = {
sec = 1296464377, nsec = 0}, mtime = {sec = 1296464377, nsec = 0}, otime = {sec = 0, nsec = 0}}
#10 copy_inodes (devname=0x7fffffffe897 "/dev/sdc1", datacsum=1, packing=1, noxattr=0) at convert.c:1154
ret =<value optimized out>
err =<value optimized out>
ext2_scan = 0xce2300
ext2_ino = 37359452
objectid = 37359706
ext2_inode = {i_mode = 16877, i_uid = 1000, i_size = 16384, i_atime = 1303466526, i_ctime = 1296464377, i_mtime = 1296464377, i_dtime = 0, i_gid = 1000,
i_links_count = 2, i_blocks = 32, i_flags = 528384, osd1 = {linux1 = {l_i_version = 1981}, hurd1 = {h_i_translator = 1981}}, i_block = {193290, 4, 0,
0, 1, 149430439, 1, 3, 149430464, 0, 0, 0, 0, 0, 0}, i_generation = 2854948622, i_file_acl = 0, i_dir_acl = 0, i_faddr = 0, osd2 = {linux2 = {
l_i_blocks_hi = 0, l_i_file_acl_high = 0, l_i_uid_high = 0, l_i_gid_high = 0, l_i_reserved2 = 0}, hurd2 = {h_i_frag = 0 '\000',
h_i_fsize = 0 '\000', h_i_mode_high = 0, h_i_uid_high = 0, h_i_gid_high = 0, h_i_author = 0}}}
trans = 0xc9ef10
#11 do_convert (devname=0x7fffffffe897 "/dev/sdc1", datacsum=1, packing=1, noxattr=0) at convert.c:2411
i =<value optimized out>
fd = 6
ret =<value optimized out>
blocksize = 4096
blocks = {9258, 9259, 9260, 9261, 9284, 9285, 9286}
total_bytes =<value optimized out>
super_bytenr = 37920768
ext2_fs = 0x622010
root = 0x633920
ext2_root =<value optimized out>
#12 0x0000000000418333 in main (argc=<value optimized out>, argv=<value optimized out>) at convert.c:2867
ret =<value optimized out>
packing = 1
noxattr = 0
datacsum = 1
rollback = 0
file = 0x7fffffffe897 "/dev/sdc1"
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: btrfs-convert crashes
2011-04-27 5:20 btrfs-convert crashes Brian Parma
@ 2011-04-27 12:05 ` Yan, Zheng
2011-04-27 23:36 ` Peter Stuge
0 siblings, 1 reply; 3+ messages in thread
From: Yan, Zheng @ 2011-04-27 12:05 UTC (permalink / raw)
To: Brian Parma; +Cc: linux-btrfs
On Wed, Apr 27, 2011 at 1:20 PM, Brian Parma <freecode@cox.net> wrote:
> I have a 1.5 TB (1,475,720,773,632) partition that I wanted to conver=
t from
> ext4 to btrfs. =C2=A0It is currently used as / for ubuntu 10.10.
>
> I booted into 11.04 beta2 and tried a 'btrfs-convert /dev/sdc1', but =
after
> about 20 minutes it segfaulted.
>
> I performed a:
>
> sck.ext4 -cDfty -C 0 /dev/sdc1
>
>
> After everything was clean, I downloaded the debugging symbols for
> btrfs-convert and tried again. =C2=A0Below is the 'bt full' output. =C2=
=A0I don't have
> enough free space to copy all the data off, create a fresh btrfs part=
ition,
> and copy everything back on (I have backups of important stuff). =C2=A0=
Is there
> something else I can try to get this to work?
>
> Brian
>
The crash was caused by the hard links per directory limit in btrfs.
In short, your ext4 is not convertible.
> at: http://pastebin.com/NEwJNzuP
>
>
> #0 =C2=A00x00007ffff7444d05 in raise () from /lib/x86_64-linux-gnu/li=
bc.so.6
> No symbol table info available.
> #1 =C2=A00x00007ffff7448ab6 in abort () from /lib/x86_64-linux-gnu/li=
bc.so.6
> No symbol table info available.
> #2 =C2=A00x000000000040502c in btrfs_extend_item (trans=3D<value opti=
mized out>,
> root=3D0x633920, path=3D<value optimized out>, data_size=3D27) at ctr=
ee.c:2525
> =C2=A0 =C2=A0 =C2=A0 =C2=A0slot =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0slot_orig =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0leaf =3D 0x1955250
> =C2=A0 =C2=A0 =C2=A0 =C2=A0nritems =3D 1
> =C2=A0 =C2=A0 =C2=A0 =C2=A0data_end =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0old_data =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0i =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0__PRETTY_FUNCTION__ =3D "btrfs_extend_item=
"
> #3 =C2=A00x000000000040e32d in btrfs_insert_inode_ref (trans=3D0xc9ef=
10,
> root=3D0x633920, name=3D0xcfa314 "gtfntf.f.svn-base", name_len=3D17,
> =C2=A0 =C2=A0inode_objectid=3D<value optimized out>, ref_objectid=3D<=
value optimized out>,
> index=3D150) at inode-item.c:135
> =C2=A0 =C2=A0 =C2=A0 =C2=A0old_size =3D 3945
> =C2=A0 =C2=A0 =C2=A0 =C2=A0path =3D 0x1639aa0
> =C2=A0 =C2=A0 =C2=A0 =C2=A0key =3D {objectid =3D 37361107, type =3D 1=
2 'f', offset =3D 37359706}
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ref =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ptr =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ins_len =3D 27
> =C2=A0 =C2=A0 =C2=A0 =C2=A0__PRETTY_FUNCTION__ =3D "btrfs_insert_inod=
e_ref"
> #4 =C2=A00x0000000000413fff in dir_iterate_proc (dir=3D<value optimiz=
ed out>,
> entry=3D<value optimized out>, old=3D0xcfa30c, offset=3D<value optimi=
zed out>,
> =C2=A0 =C2=A0blocksize=3D<value optimized out>, buf=3D<value optimize=
d out>,
> priv_data=3D0x7fffffffe370) at convert.c:289
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0file_type =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0objectid =3D 37361107
> =C2=A0 =C2=A0 =C2=A0 =C2=A0dotdot =3D ".."
> =C2=A0 =C2=A0 =C2=A0 =C2=A0location =3D {objectid =3D 37361107, type =
=3D 1 '=01', offset =3D 0}
> =C2=A0 =C2=A0 =C2=A0 =C2=A0dirent =3D 0xcfa30c
> =C2=A0 =C2=A0 =C2=A0 =C2=A0idata =3D 0x7fffffffe370
> =C2=A0 =C2=A0 =C2=A0 =C2=A0__PRETTY_FUNCTION__ =3D "dir_iterate_proc"
> #5 =C2=A00x00007ffff7bbdc13 in ext2fs_process_dir_block () from
> /lib/x86_64-linux-gnu/libext2fs.so.2
> No symbol table info available.
> #6 =C2=A00x00007ffff7bbac02 in ext2fs_block_iterate2 () from
> /lib/x86_64-linux-gnu/libext2fs.so.2
> No symbol table info available.
> #7 =C2=A00x00007ffff7bbdfb8 in ext2fs_dir_iterate2 () from
> /lib/x86_64-linux-gnu/libext2fs.so.2
> No symbol table info available.
> #8 =C2=A00x000000000041689d in create_dir_entries (devname=3D0x7fffff=
ffe897
> "/dev/sdc1", datacsum=3D1, packing=3D1, noxattr=3D0) at convert.c:322
> =C2=A0 =C2=A0 =C2=A0 =C2=A0err =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0data =3D {trans =3D 0xc9ef10, root =3D 0x6=
33920, inode =3D 0x7fffffffe1c0,
> objectid =3D 37359706, index_cnt =3D 150, parent =3D 37359705, errcod=
e =3D 0}
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> #9 =C2=A0copy_single_inode (devname=3D0x7fffffffe897 "/dev/sdc1", dat=
acsum=3D1,
> packing=3D1, noxattr=3D0) at convert.c:1072
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0btrfs_inode =3D {generation =3D 1, transid=
=3D 140737354044640, size =3D
> 4994, nbytes =3D 0, block_group =3D 0, nlink =3D 1, uid =3D 1000, gid=
=3D 1000, mode =3D
> 16877,
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rdev =3D 0, flags =3D 0, sequence =3D=
140737351933932, reserved =3D {0,
> 140737354040256, 140733193388033, 0}, atime =3D {sec =3D 1303466526, =
nsec =3D 0},
> ctime =3D {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sec =3D 1296464377, nsec =3D=
0}, mtime =3D {sec =3D 1296464377, nsec =3D
> 0}, otime =3D {sec =3D 0, nsec =3D 0}}
> #10 copy_inodes (devname=3D0x7fffffffe897 "/dev/sdc1", datacsum=3D1, =
packing=3D1,
> noxattr=3D0) at convert.c:1154
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0err =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ext2_scan =3D 0xce2300
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ext2_ino =3D 37359452
> =C2=A0 =C2=A0 =C2=A0 =C2=A0objectid =3D 37359706
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ext2_inode =3D {i_mode =3D 16877, i_uid =3D=
1000, i_size =3D 16384, i_atime =3D
> 1303466526, i_ctime =3D 1296464377, i_mtime =3D 1296464377, i_dtime =3D=
0, i_gid =3D
> 1000,
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0i_links_count =3D 2, i_blocks =3D 3=
2, i_flags =3D 528384, osd1 =3D {linux1
> =3D {l_i_version =3D 1981}, hurd1 =3D {h_i_translator =3D 1981}}, i_b=
lock =3D {193290,
> 4, 0,
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00, 1, 149430439, 1, 3, 14943=
0464, 0, 0, 0, 0, 0, 0}, i_generation
> =3D 2854948622, i_file_acl =3D 0, i_dir_acl =3D 0, i_faddr =3D 0, osd=
2 =3D {linux2 =3D {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0l_i_blocks_hi =3D 0, =
l_i_file_acl_high =3D 0, l_i_uid_high =3D 0,
> l_i_gid_high =3D 0, l_i_reserved2 =3D 0}, hurd2 =3D {h_i_frag =3D 0 '=
=EF=BF=BD',
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0h_i_fsize =3D 0 '=EF=BF=
=BD', h_i_mode_high =3D 0, h_i_uid_high =3D 0,
> h_i_gid_high =3D 0, h_i_author =3D 0}}}
> =C2=A0 =C2=A0 =C2=A0 =C2=A0trans =3D 0xc9ef10
> #11 do_convert (devname=3D0x7fffffffe897 "/dev/sdc1", datacsum=3D1, p=
acking=3D1,
> noxattr=3D0) at convert.c:2411
> =C2=A0 =C2=A0 =C2=A0 =C2=A0i =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0fd =3D 6
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0blocksize =3D 4096
> =C2=A0 =C2=A0 =C2=A0 =C2=A0blocks =3D {9258, 9259, 9260, 9261, 9284, =
9285, 9286}
> =C2=A0 =C2=A0 =C2=A0 =C2=A0total_bytes =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0super_bytenr =3D 37920768
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ext2_fs =3D 0x622010
> =C2=A0 =C2=A0 =C2=A0 =C2=A0root =3D 0x633920
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ext2_root =3D<value optimized out>
> #12 0x0000000000418333 in main (argc=3D<value optimized out>, argv=3D=
<value
> optimized out>) at convert.c:2867
> =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D<value optimized out>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0packing =3D 1
> =C2=A0 =C2=A0 =C2=A0 =C2=A0noxattr =3D 0
> =C2=A0 =C2=A0 =C2=A0 =C2=A0datacsum =3D 1
> =C2=A0 =C2=A0 =C2=A0 =C2=A0rollback =3D 0
> =C2=A0 =C2=A0 =C2=A0 =C2=A0file =3D 0x7fffffffe897 "/dev/sdc1"
>
>
>
> --
> 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 =C2=A0http://vger.kernel.org/majordomo-info.ht=
ml
>
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: btrfs-convert crashes
2011-04-27 12:05 ` Yan, Zheng
@ 2011-04-27 23:36 ` Peter Stuge
0 siblings, 0 replies; 3+ messages in thread
From: Peter Stuge @ 2011-04-27 23:36 UTC (permalink / raw)
To: linux-btrfs
Yan, Zheng wrote:
> > 'btrfs-convert /dev/sdc1' .. segfaulted.
>
> The crash was caused by the hard links per directory limit in btrfs.
> In short, your ext4 is not convertible.
The failure mode is of course unacceptable. Does btrfs-convert have a
dry-run mode which could be used to check that actual convert will
not crash on top of a pile of random bits?
//Peter
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-04-27 23:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-27 5:20 btrfs-convert crashes Brian Parma
2011-04-27 12:05 ` Yan, Zheng
2011-04-27 23:36 ` Peter Stuge
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.